Как отобразить пустые записи в подгруппе BIRT Table? - PullRequest
0 голосов
/ 16 августа 2010

Я пытаюсь создать таблицу с двумя группами в отчете BIRT.

Я сначала группируюсь по годам, а затем по критериям во втором столбце. Допустим, этот критерий является одним из [A, B, C, D]. Если в течение года не существует критериев, по умолчанию в BIRT он не указан. Например, если в 2011 году не было критериев B или D, мой отчет выглядел бы так:

2010
----
A 1
B 2
C 3
D 4

2011
----
A 5
C 6

Однако я хочу показать все возможные критерии, даже если у них нет записей за определенный год.

Я попытался установить свойство в advanced-> section-> show if blank = true, но ничего не получилось.

Есть идеи?

(я использую birt 2.6.0)

Запрос SQL (подключение к источнику данных mysql) довольно прост:

SELECT year_field, decision_field, sales_field
FROM databaseName

Отчет: http://bit.ly/9SDbNI

И выдает отчет вроде:

alt text

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Как я уже говорил ранее, это проблема с набором данных, а не проблема BIRT. Проблема заключается в том, что набор данных не включает строки, в которых в те годы не было продаж для этих кодов решений.

Я скорее надеялся, что будут отдельные таблицы для лет и кодов решений, но похоже, что для всего есть одна таблица. Поэтому я предлагаю следующий запрос (основанный на запросе в файле rptdesign, а не на вопросе):

select y.year_field, d.decision_field, t.sales_field
from
(select distinct year_field from databaseTable) y
cross join (select distinct decision_field from databaseTable) d
left join databaseTable t 
on y.year_field = t.year_field and d.decision_field = t.decision_field

Кроме того, измените определение столбца Количество на счетчик поля продаж, а не поля решения.

0 голосов
/ 18 августа 2010

Я заметил, что вы используете MySql. Используйте SELECT IFNULL(<MyCol>,0) from my_table; для замены нулевых значений на 0.

...