birt合并列

时间:2017-09-11 10:28:20

标签: sql birt

我正在使用它来生成用户报告。我需要创建一个显示充值次数和总数以及提款次数的数据。

我创建了两个数据集:

select WAL_TRANSACTION.PARTY_ID, sum(WAL_TRANSACTION.AMOUNT) amountdep, count(WAL_TRANSACTION.AMOUNT) countdep
from WAL_TRANSACTION
where WAL_TRANSACTION.TRANSACTION_TYPE=1
and WAL_TRANSACTION.STATUS='completed'
group by WAL_TRANSACTION.PARTY_ID

select WAL_TRANSACTION.PARTY_ID, sum(WAL_TRANSACTION.AMOUNT) amountwi, count(WAL_TRANSACTION.AMOUNT) countwi
from WAL_TRANSACTION
where WAL_TRANSACTION.TRANSACTION_TYPE=2
and WAL_TRANSACTION.STATUS='completed'
group by WAL_TRANSACTION.PARTY_ID

然后创建一个BIRT联合数据集来组合两个(全外连接)

问题是,在结果中,您最终得到了2个PARTY_ID列,有没有办法将它们合并为一列?

sample current result

1 个答案:

答案 0 :(得分:0)

只需使用条件聚合:

select t.PARTY_ID,
       sum(case when t.TRANSACTION_TYPE = 1 then t.AMOUNT end) as amountdep_1,
       sum(case when t.TRANSACTION_TYPE = 1 then 1 else 0 end) as countdep_1,
       sum(case when t.TRANSACTION_TYPE = 2 then t.AMOUNT end) as amountdep_2,
       sum(case when t.TRANSACTION_TYPE = 2 then 1 else 0 end) as countdep_2
from WAL_TRANSACTION t
where t.TRANSACTION_TYPE in (1, 2) and
      t.STATUS = 'completed'
group by t.PARTY_ID;

你不需要子查询。