2011-09-12 2 views
0

자세한 데이터에서 요약 월별 추적 보고서를 만들어야합니다. 데이터 샘플은 다음과 같습니다.세부 정보에서 요약 추적 보고서 만들기

회사 | 국가 | 가입 날짜
회사 A | 미국 | 1/1/2011
회사 B | 아일랜드 | 5/5/2011
회사 C | 이탈리아 | 7/11/2011
회사 D | 독일 | |

나라 1 : 2011년 6월 14일

나는 아래의 형식으로 나에게 특정 국가에서 특정 달에 합류 회원의 수를 줄 것이다 보고서를 작성해야 합계 (1 월) | 합계 (2 월) | 합계 (3 월 등) | 합계 (월별 합계)
국가 2 | 합계 (1 월) | 합계 (2 월) | 합계 (3 월 등) | 합계 (월별 합계)
국가 3 | 합계 (1 월) | 합계 (2 월) | 합계 (월 등) | 합계 (월별 합계)

각 열의 맨 아래에는 각 국가의 월별 금액이 필요합니다. 또한이 보고서는 롤링 보고서 여야하므로 사용자가 보고서를 생성 할 때 최신 정보를 제공합니다.

답변

0

두 부분으로 나누고 싶을 것입니다.

먼저 데이터베이스에서 관련 데이터를 가져 오려고합니다. (그리고 난 당신이/작성 서식하고 있으리라 믿고있어

Country Year Month Count 
================================== 
Germany 2011 6  1 
Ireland 2011 5  1 
Italy  2011 7  1 
USA  2011 1  1 

둘째 : 당신의 주어진 데이터에 대한

SELECT country, year(join_date) as year, month(join_date) as month, count(*) 
FROM trackingTable 
WHERE join_date between :start_date and :end_date 
GROUP BY country, year(join_date), month(join_date) 
ORDER BY country, year, month 

, 이것은 다음과 같은 샘플을 생성합니다 : 아마 최고의 같은 문에 의해 달성 외부 언어로보고), 데이터를 순차적으로 읽습니다. ORDER BY이 주어지면 각 국가는 별도의 순서가됩니다. 귀하의 필요에 맞는 푸시 코드 :

for each row in set { 
    if different country { 
     total up row, start new line 
    } 
    add month cell to column; 
    add month cell to month grand total; 
} 
total up grand total row, print/save 
관련 문제