2015년 5월 12일 화요일

[SSRS]빈 데이터 / Null 데이터 (연속되지 않은)로 차트 그리기

*문제: 빈 데이터 / Null 데이터 (연속되지 않은)로 차트 그리기

*해결: 가로 축 옵션 혹은 차트 계열 속성 사용하기

*Case1. 빈 데이터의 경우

- Sample Query
SELECT
      CONVERT(VARCHAR(10),[ORDERDATE],121) AS BASE_DATE
      , SUM(B.UNITPRICE) AS UNITPRICE
FROM [SALES].[SALESORDERHEADER] AS A WITH(NOLOCK)
JOIN [SALES].[SALESORDERDETAIL] AS B WITH(NOLOCK)
      ON A.SALESORDERID = B.SALESORDERID
WHERE ORDERDATE >= '2014-06-01'
and CONVERT(VARCHAR(10),[ORDERDATE],121) <> '2014-06-16'
GROUP BY CONVERT(VARCHAR(10),[ORDERDATE],121)
ORDER BY 1 DESC
위 Query를 실행하게 되면 아래와 같이 2014-06-16일 데이터 없는 결과가 나오게 된다.



이 데이터를 이용해 차트를 생성하게 되면 아래와 같은 형태의 차트가 생성 된다.
( 2014-06-16일자가 Y축에 표시되지 않음 )


 가로 축 속성을 사용해 해결

Step1. 차트 Y축 마우스 우클릭 > 가로 축 속성 선택

Step2.축 옵션 탭 > 축 유형의 스칼라(숫자/날짜) 선택


Step3. 결과
2014-06-16일자가 Y축에 표시가 된다.


*Case2. Null 데이터가 포함 된 경우

- Sample Query

 SELECT
      CONVERT(VARCHAR(10),[ORDERDATE],121) AS BASE_DATE
      , CASE
               WHEN CONVERT(VARCHAR(10),[ORDERDATE],121) = '2014-06-15'
               THEN NULL ELSE SUM(B.UNITPRICE) END AS UNITPRICE
FROM [SALES].[SALESORDERHEADER] AS A WITH(NOLOCK)
JOIN [SALES].[SALESORDERDETAIL] AS B WITH(NOLOCK)
     ON A.SALESORDERID = B.SALESORDERID
WHERE ORDERDATE >= '2014-06-01'
GROUP BY CONVERT(VARCHAR(10),[ORDERDATE],121)
ORDER BY 1 DESC


- 쿼리 실행 결과 2014-04-16일이 표시 되지만 null값이 나오게 된다.



이 데이터를 이용해 차트를 생성하게 되면 아래와 같은 형태의 차트가 생성 된다.
( 2014-06-16일자가 Y축에 표시되지만 그래프가 연속되지 않음 )


차트 계열 속성사용해 해결

Step1. 차트 데이터의 계열 마우스 클릭 > F4를 눌러 속성 창을 표시


Step2. EmptyPoint 노드를 확장
​Step3. Color 속성의 색 값을 선택( Red )
Step4. ​EmptyPoint 노드에서 Marker 노드 확장
Step5. MarkerType 속성의 표식 유형을 선택​( Cross )


Step6. CustomAttributes 노드를 확장
Step7. EmptyPointValue 속성을 설정



Step 8. 결과

EmptyPointValue 선택에 따라 평균값 혹은 0 값을 차트에 추가 할 수 있다.




댓글 없음:

댓글 쓰기

추천 게시물

python: SVD(Singular Value Decomposition)로 간단한 추천시스템 만들기( feat. surprise )

svd_example In [15]: # !pip install surprise In [21]: from...