2010-04-29 2 views
0

지난 24 개월 동안 월별로 그룹화 된 측정 값의 합계를 보여주는 막대 차트를 보고서에 표시하려고합니다. 어떤 튜플이없는 달은 그래프에 나타나지 않습니다. 나는 그것을 원하지 않는다. 튜플이 없으면 정확하게 24 개의 그룹/바를 원합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?크리스탈 보고서에서 기록 차트를 정의하는 방법 .net (2008)?

 thanks 
+0

이것은 매우 모호합니다. 나는 당신이 필요로하는 모든 그룹을 만든 SP를 만들 것입니다. 크리스탈 차트 컨트롤을 사용하는 방법에 관한 많은 문서가 있어야합니다. – Jeremy

+0

답변을 제공해 주지만 SP라는 용어를 확장 할 수 있습니까? :-) –

+0

오케이, 미안, 방금 저장 절차가있어. 그러나 나는 서버 측 프로그래밍없이 그것을하고 싶다. 나는 항상 24 개월 된 더미 - 튜플을 데이터 소스에 추가하고 크리스탈 리포트의 성능이 더 이상 사용할 수없는 지점까지 저하되는보기를 추가하려고했습니다. Crystal Reports에서 원하는 것을 표시하도록 데이터베이스에 개체를 추가하는 것은 매우 못 생기는 디자인이라고 생각합니다. –

답변

1
--oracle-specific syntax 
with MONTHS as (

    --current month 
    SELECT TO_DATE(to_char(sysdate,'mm') || '/1/' || to_char(sysdate,'yyyy'),'mm/dd/yyyy') date_field, 0 measure_value 
    FROM DUAL 

    UNION 

    --prior month 
    SELECT add_months(TO_DATE(TO_CHAR(SYSDATE,'mm') || '/1/' || TO_CHAR(SYSDATE,'yyyy'),'mm/dd/yyyy'),-1) date_field, 0 measure_value 
    FROM DUAL 

    --continue for remaining 22 months 
), 

DATA AS (

    SELECT date_field, COUNT(measure_field) measure_value 
    FROM table 
    GROUP BY date_field 

) 

SELECT * 
from data 

UNION 

SELECT * 
FROM MONTHS m 
WHERE NOT EXISTS (
    SELECT 1 
    FROM data d 
    where m.date_field=d.date_field 
) 

당신이 오히려 UNION 문의 모든보다 날짜 값의 테이블을 반환하는 사용자 정의 함수를 작성하는 것은 의미가있다.

보고서의 Command 개체에서이 쿼리를 사용하십시오.

관련 문제