Создание сводного отчета с выбранной сводкой - PullRequest
1 голос
/ 16 августа 2011

Мне нужно создать отчет (см. Ниже), используя 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

1 Ответ

0 голосов
/ 16 августа 2011

С 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
...