2011-08-16 81 views
1

我需要使用下面的表格示例使用Jasper創建一個報告(見下文)。 主要問題是計數(A)和計數(C)。我在使用Oracle臨時表特性(使用合併)之前解決了這個問題。使用選定的摘要創建總結報告

我正在尋找更高效/優雅的方式來執行此任務,無論是通過SQL還是使用Jasper Report。

CUSTOMER Table 
CustomerID | CustomerType | Status | Amount 
--------------------------------------------------- 
1111  | C   | A   | 10.5 
1112  | C   | C   | 3.0 
1113  | C   | A   | 6.0 
1114  | C   | A   | 5.0 
1115  | C   | A   | 5.0 
1116  | R   | C   | 4.0 
1117  | R   |C   | 5.0 
1118  | R   |C   | 6.0 
1119  | R   |A   | 7.0 
1120  | R   |A   | 3.0 

Report 
Customer Type | Count | Count(C) | Count (A) | Sum(amount) 
C    | 5  |  1 |  4  | 29.5 
R    | 5  |  3 |  2  | 25.0 

回答

0

隨着SQL:

SELECT 
    CustomerType, 
    COUNT(*), 
    SUM(CASE WHEN Status = 'C' THEN 1 ELSE 0 END), 
    SUM(CASE WHEN Status = 'A' THEN 1 ELSE 0 END), 
    SUM(Amount) 
FROM 
    Customers 
GROUP BY 
    CustomerType 
ORDER BY 
    CustomerType 
+0

感謝湯姆,我現在覺得挺傻的...... – eLAN

+0

不用擔心,我們都在那裏:) –