2011-08-16 54 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

不用担心,我们都在那里:) –