SQL Oracle 的 BIRT 报告

BIRT Report with SQL Oracle

任务是做一个简单的报告,看起来像这样:

Trees Planted (Previous Week)      Quantity          Weight

OAK                                     720             544
APPLE                                   150             138
PEAR                                    430             411
PINE                                    602             589
CHESTNUT                                384             357

Sum:                                  2 286           2 039

我需要拉入不同种植事件的数据,这些数据以列表示:TREE, QTY, WEIGHT。

现在,问题(或挑战)是:

  1. 在 "Trees Planted" 列中,显示上周种植的树木,并按字母顺序分组。
  2. 将上周种植的每种树的数量相加,并将结果显示在'Quantity'列的适当行中。与 'Weight'.
  3. 相同

我想,第一点很简单:

select TREE
from TREETABLE

group by TREE
order by TREE

第二点应该是这样的:

select QTY
from TREETABLE

where SYSDATE >= next_day(trunc(sysdate), 'MONDAY') - 14
and SYSDATE < next_day(trunc(sysdate), 'MONDAY') - 7

and TREE='OAK'

但我知道,这里有问题.. 因为这样我们需要为每个单元格指定一个 TREE。让它相对于第一列链接可能会更好。还是BIRT本身有一个特性可以建立这种关系?

嗯,看起来像一个简单的"group by"查询,此时不需要BIRT进入场景。在数据集中设置这种查询就完成了:

select TREE, sum(QTY) as QTY, SUM(WEIGHT) as WEIGHT
from TREETABLE
where SYSDATE >= next_day(trunc(sysdate), 'MONDAY') - 14
and SYSDATE < next_day(trunc(sysdate), 'MONDAY') - 7
group by TREE
order by TREE

并在 BIRT 的页脚中创建总计 table