이 블로그 검색
2014년 6월 16일 월요일
제거되지 않는 공백
SELECT 문으로 봤을때 462 라고만 나오고
REPLACE(컬럼,' ', '') 또는 LTRIM,RTRIM을 사용해도
제대로 제거되지 않는 공백이 포함되어 있는 데이터의
ASCII 코드를 살펴보니 아래와 같은 데이터들이 포함.
DECLARE @position int, @string char(15)
SET @position = 1
SET @string = (select TESTCOL from TESTTBL where ~~~ )
WHILE @position <= DATALENGTH(@string)
BEGIN
SELECT ASCII(SUBSTRING(@string, @position, 1)),
CHAR(ASCII(SUBSTRING(@string, @position, 1)))
SET @position = @position + 1
END
-- 결과 --------
----------- ----
52 4
----------- ----
54 6
----------- ----
50 2
----------- ----
9
----------- ----
32
----------- ----
32
----------- ----
32
----------- ----
32
오라클에서 SQL Server로 이관한 데이터에는 겉으로 보기엔 같은 공백,
ASCII 다양한 공백이 포함되어 있었고
REPLACE(컬럼, CHAR(9), '') 와 같은 방법으로 처리
CHAR(32)는 일반적인 공백이므로 REPLACE나 TRIM으로 처리가 가능.
SQL SERVER 에서는 CHAR(9)가 포함된 두 개의 데이터를 구분하지만
SSAS에서 차원처리를 하거나 할때는 같은 데이터로 보고 에러를 낸다.
(키중복 등)
특정 차원 멤버로 필터링된 측정값 생성
CREATE MEMBER CURRENTCUBE.[Measures].[남성고객수]
AS SUM({ [성별].[성별].&[M]}, [Measures].[고객고유카운트]);
CREATE MEMBER CURRENTCUBE.[Measures].[여성고객수]
AS SUM({ [성별].[성별].&[F]}, [Measures].[고객고유카운트]);
AS SUM({ [성별].[성별].&[M]}, [Measures].[고객고유카운트]);
CREATE MEMBER CURRENTCUBE.[Measures].[여성고객수]
AS SUM({ [성별].[성별].&[F]}, [Measures].[고객고유카운트]);
라벨:
계산된 측정값,
Calculated measure,
SSAS
엑셀 새창 띄우기
엑셀파일 더블클릭시 새창으로 띄우기
1. 실행 → regedit
2. HKEY_CLASSES_ROOT\Excel.sheet.12\shell\open\ddeexec → 폴더 삭제
3. HKEY_CLASSES_ROOT\Excel.sheet.12\shell\open\command\command → 삭제
4. HKEY_CLASSES_ROOT\Excel.sheet.12\shell\open\command\(기본값) 수정
→ C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" /en "%1
1. 실행 → regedit
2. HKEY_CLASSES_ROOT\Excel.sheet.12\shell\open\ddeexec → 폴더 삭제
3. HKEY_CLASSES_ROOT\Excel.sheet.12\shell\open\command\command → 삭제
4. HKEY_CLASSES_ROOT\Excel.sheet.12\shell\open\command\(기본값) 수정
→ C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" /en "%1
Oracle Calendar table
오라클 일자테이블 생성
SELECT TO_CHAR (MYDATE, 'yyyymmdd') AS DATE_CD,
TO_CHAR (MYDATE, 'yyyy') AS YEAR_CD,
TO_CHAR (MYDATE, 'yyyy')||'년' AS YEAR_NM,
TO_CHAR (MYDATE, 'MM') AS MONTH_CD,
TO_CHAR (MYDATE, 'MM')||'월' AS MONTH_NM,
TO_CHAR (MYDATE, 'DD') AS DAY_CD,
TO_CHAR (MYDATE, 'DD')||'일' AS DAY_NM,
TO_CHAR (MYDATE, 'D') AS WEEK_CD,
TO_CHAR (MYDATE, 'Day') AS WEEK_NM,
TO_CHAR (MYDATE, 'WW') AS YEAR_WEEK_CD,
TO_CHAR (MYDATE, 'WW')||'주차' AS YEAR_WEEK_NM,
TO_CHAR (MYDATE, 'Q') AS QRTR_CD,
TO_CHAR (MYDATE, 'Q')||'/4분기' AS QRTR_NM,
DECODE( TO_CHAR (MYDATE, 'Q'), '1','1','2','1','3','2','4','2') AS HALF_CD,
DECODE( TO_CHAR (MYDATE, 'Q'), '1','상반기','2','상반기','3','하반기','4','하반기') AS HALF_NM
FROM (
SELECT TRUNC (ADD_MONTHS (SYSDATE, -60), 'yy') - 1 + LEVEL AS MYDATE
FROM DUAL
CONNECT BY LEVEL <= (SELECT TRUNC (ADD_MONTHS (SYSDATE, 60), 'yy')
- TRUNC (ADD_MONTHS (SYSDATE, -12), 'yy')
FROM DUAL
)
);
SELECT TO_CHAR (MYDATE, 'yyyymmdd') AS DATE_CD,
TO_CHAR (MYDATE, 'yyyy') AS YEAR_CD,
TO_CHAR (MYDATE, 'yyyy')||'년' AS YEAR_NM,
TO_CHAR (MYDATE, 'MM') AS MONTH_CD,
TO_CHAR (MYDATE, 'MM')||'월' AS MONTH_NM,
TO_CHAR (MYDATE, 'DD') AS DAY_CD,
TO_CHAR (MYDATE, 'DD')||'일' AS DAY_NM,
TO_CHAR (MYDATE, 'D') AS WEEK_CD,
TO_CHAR (MYDATE, 'Day') AS WEEK_NM,
TO_CHAR (MYDATE, 'WW') AS YEAR_WEEK_CD,
TO_CHAR (MYDATE, 'WW')||'주차' AS YEAR_WEEK_NM,
TO_CHAR (MYDATE, 'Q') AS QRTR_CD,
TO_CHAR (MYDATE, 'Q')||'/4분기' AS QRTR_NM,
DECODE( TO_CHAR (MYDATE, 'Q'), '1','1','2','1','3','2','4','2') AS HALF_CD,
DECODE( TO_CHAR (MYDATE, 'Q'), '1','상반기','2','상반기','3','하반기','4','하반기') AS HALF_NM
FROM (
SELECT TRUNC (ADD_MONTHS (SYSDATE, -60), 'yy') - 1 + LEVEL AS MYDATE
FROM DUAL
CONNECT BY LEVEL <= (SELECT TRUNC (ADD_MONTHS (SYSDATE, 60), 'yy')
- TRUNC (ADD_MONTHS (SYSDATE, -12), 'yy')
FROM DUAL
)
);
라벨:
calendar table
2014년 5월 1일 목요일
SSMS 결과창 보이기/숨기기
이전 버전까지는 잘 사용하던 쿼리결과창 보이기 숨기기 (Ctrl+R)가 SQL Server 2012버전의 SSMS 부터는
따로 키 지정을 해줘야한다.
도구(T) > 사용자 지정(C) > 키보드(K)
창.결과창표시 선택 > 새 바로 가기 사용 위치(N) : "SQL 쿼리 편집기"
바로 가기 키 누르기(P) : "Ctrl+R"
할당(S) > 확인
Tools > Customize > Keyboard >
"Window.ShowResultsPane" > Use new shortcut in : "SQL Query Editor"
Press shortcut keys : "Ctrl+R"
Assign > OK
2014년 4월 24일 목요일
[ERWin] Revers Engineer to SQL Server 2005
증상
ERWin에서 Reverse Engineer를 하기위해 SQL Server 2005에 접속시도중
DAX000: Unable to locate client connectivity software sqlncli.dll(Native ODBC Connectivity)
위와 같은 에러를 내면서 접속조차 되지 않음.
해결
Client 버전 문제이겠구나.. 생각하고 SQL Server 2005 Client 설치, 그래도 동일한 오류.
MS Download Center에서 SQL Server 2005용 기능팩을 다운로드 할 수있고 이 기능팩 설치후 정상 동작.
http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyId=50b97994-8453-4998-8226-fa42ec403d17&DisplayLang=ko
증상2.
접속은 되는데.. 테이블을 긁어오는 도중 ERWin이 뻗어버리는 증상이 발견.
해결.
정확히 어떤 옵션 때문에 뻗어버리는지는 찾지 못했지만 (일일이 체크하며 찾기 귀찮..)
Reverse Engineer시 기본적으로 옵션이 모두 체크되어있는데 단순히 테이블만 긁어오는 용도라면 다른 옵션을 모두 제거하고 테이블만 선택하면 에러없이 정상적으로 Reverse Engineer가 완료됨.
ERWin에서 Reverse Engineer를 하기위해 SQL Server 2005에 접속시도중
DAX000: Unable to locate client connectivity software sqlncli.dll(Native ODBC Connectivity)
위와 같은 에러를 내면서 접속조차 되지 않음.
해결
Client 버전 문제이겠구나.. 생각하고 SQL Server 2005 Client 설치, 그래도 동일한 오류.
MS Download Center에서 SQL Server 2005용 기능팩을 다운로드 할 수있고 이 기능팩 설치후 정상 동작.
http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyId=50b97994-8453-4998-8226-fa42ec403d17&DisplayLang=ko
증상2.
접속은 되는데.. 테이블을 긁어오는 도중 ERWin이 뻗어버리는 증상이 발견.
해결.
정확히 어떤 옵션 때문에 뻗어버리는지는 찾지 못했지만 (일일이 체크하며 찾기 귀찮..)
Reverse Engineer시 기본적으로 옵션이 모두 체크되어있는데 단순히 테이블만 긁어오는 용도라면 다른 옵션을 모두 제거하고 테이블만 선택하면 에러없이 정상적으로 Reverse Engineer가 완료됨.
라벨:
ERWin,
SQL Server
2012년 1월 14일 토요일
SSRS Divine by zero Error
SSRS에서 0으로 나누기 에러
아래와 같은 식에서 분모가 0이 될 경우 에러를 낸다.
=sum(Fields!분자.Value)/sum(Fields!분모.Value)
에러를 내지 않기위한 방법으로 아래의 IIF식은 문제가 없어보이지만 실제로
정상적으로 동작하지 않는다.
=iif(sum(Fields!분모.Value)=0,0,sum(Fields!분자.Value)/sum(Fields!분모.Value))
아래와 같이 분자,분모에 모두 IIF식으로 감싸주면 정상 작동한다.
=iif(sum(Fields!분모.Value)=0,0,sum(Fields!분자.Value)/iif(sum(Fields!분모.Value)=0,1,sum(Fields!분모.Value))
피드 구독하기:
글 (Atom)


