2013-03-31 120 views
1

我正在使用ingres數據庫將PowerBuilder中的報告遷移到MS Reporting Services。我有以下數據集:Reporting Services中的SQL聚合

Code| Code Description | Carer_Id| Child_id | Child_age 
======================================================= 
738 Workflow   1234  2345  10 
738 Workflow   1234  2346  15 
739 Estimate   1235  2367  10 

的powerbuider報告使用的內置功能,像運行總計輸出數據:

code | Code Description | carer | child | age 0 < 10 | age 10 > 15 
738 Workflow    1  2  1   1 
================================================================== 
739 Estimate    1  1  1   0 

基本要求是顯示護理人員總數,孩子的代碼(按代碼分組),還要顯示10歲以下的兒童總數,以及10歲以上的兒童總數,按代碼分組。

我的問題是如何在T-sql 2005或SSRS中獲得同樣的結果?我可以得到獨特的carer_id COUNT和Child_id COUNT,然後將他們分組以獲得照顧者和孩子的總數,但我無法獲得年齡?如果可能,我不想使用光標,我應該使用CTE? 請任何建議將不勝感激。 在此先感謝。

回答

1
SELECT Code, 
     [Code Description], 
     COUNT(DISTINCT carer_ID) Carer, 
     COUNT(DISTINCT Child_ID) child, 
     SUM(CASE WHEN Child_Age BETWEEN 0 AND 10 THEN 1 ELSE 0 END) [age 0 < 10], 
     SUM(CASE WHEN Child_Age BETWEEN 11 AND 15 THEN 1 ELSE 0 END) [age 10 > 15] 
FROM TableName 
GROUP BY Code, [Code Description] 

輸出

╔══════╦══════════════════╦═══════╦═══════╦════════════╦═════════════╗ 
║ CODE ║ CODE DESCRIPTION ║ CARER ║ CHILD ║ AGE 0 < 10 ║ AGE 10 > 15 ║ 
╠══════╬══════════════════╬═══════╬═══════╬════════════╬═════════════╣ 
║ 738 ║ Workflow   ║  1 ║  2 ║   1 ║   1 ║ 
║ 739 ║ Estimate   ║  1 ║  1 ║   1 ║   0 ║ 
╚══════╩══════════════════╩═══════╩═══════╩════════════╩═════════════╝ 
+1

謝謝你這麼多JW,真是棒極了! – snowflakes74

+0

不客氣':D' –