我需要使用Jasper创建一个报告(如下所示),使用下表示例。 主要问题是Count(A)和Count(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 :(得分: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