使用所选摘要创建摘要报告

时间:2011-08-16 12:15:29

标签: sql jasper-reports report

我需要使用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

1 个答案:

答案 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