2017-09-11 2 views
1

Je l'utilise pour générer des rapports utilisateur. J'ai besoin de créer un qui montre le nombre et la somme des recharges et la somme et le nombre de retraits.Colonnes birt merge

J'ai créé deux ensembles de données:

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 

et

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 

Et puis a créé un ensemble de données communes BIRT définies pour combiner les deux (jointure externe complète)

Le problème est que dans le résultat, vous vous retrouvez avec 2 colonnes PARTY_ID, est-il un moyen de les fusionner dans une colonne?

sample current result

Répondre

0

Il suffit d'utiliser l'agrégation conditionnelle:

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; 

Vous n'avez pas besoin pour ce sous-requêtes.