Bonjour,
j'ai une question sur une de mes requêtes :
Code :
- select
- case
- when d.deal_numadm!=0 and d.deal_numadm is not null
- then 'MA' || d.deal_nummas || '_' || d.ntt_id
- when d.deal_numadm=0 or d.deal_numadm is null
- then 'Master' || d.deal_nummas || '_' || d.ntt_id
- end as node_id,
- sum(cva.cva), sum(dva.dva), d.deal_numadm, d.deal_nummas
- from acc_processed_cva cva
- left outer join acc_processed_dva dva on dva.deal_id = cva.deal_id
- join acc_deals d on d.deal_id = cva.deal_id and d.deal_scope='Y'
- join dt_runs r on r.run_id = cva.run_id and r.deal_cnt_id = d.deal_cnt_id
- where r.run_id=57 and d.deal_nummas=10700 and d.ntt_id = 1731413
- group by d.ntt_id, d.deal_nummas, d.deal_numadm, d.deal_cnt_id, d.ntt_id;
|
Dans cette requête, le select d.deal_numadm est juste là pour montrer qu'il est différent dans chacune des lignes retournées par la requête :
NODE_ID SUM(CVA.CVA) SUM(DVA.DVA) DEAL_NUMADM DEAL_NUMMAS
MA10700_1731413 953180 1373440 22012 10700
Master10700_1731413 4886330 4318999 0 10700
MA10700_1731413 1654 1192 12054 10700
MA10700_1731413 4 (null) 83442 10700
MA10700_1731413 14 1093 10775 10700
MA10700_1731413 963 (null) 10779 10700 |
Ce que je voudrais, c'est une requête qui retourne ça (sans le d.deal_numadm):
NODE_ID SUM(CVA.CVA) SUM(DVA.DVA) DEAL_NUMMAS
MA10700_1731413 955815 1375725 10700
Master10700_1731413 4886330 4318999 10700 |
avec la 1ere ligne qui soit la somme des lignes 1, 3, 4, 5 et 6 du résultat précédent.
J'ai essayé en enlevant le d.deal_numadm du group by de la requête, mais évidemment ça ne marche pas :
Code :
- select
- case
- when d.deal_numadm!=0 and d.deal_numadm is not null
- then 'MA' || d.deal_nummas || '_' || d.ntt_id
- when d.deal_numadm=0 or d.deal_numadm is null
- then 'Master' || d.deal_nummas || '_' || d.ntt_id
- end as node_id,
- sum(cva.cva), sum(dva.dva), d.deal_nummas
- from acc_processed_cva cva
- left outer join acc_processed_dva dva on dva.deal_id = cva.deal_id
- join acc_deals d on d.deal_id = cva.deal_id and d.deal_scope='Y'
- join dt_runs r on r.run_id = cva.run_id and r.deal_cnt_id = d.deal_cnt_id
- where r.run_id=57 and d.deal_nummas=10700 and d.ntt_id = 1731413
- group by d.ntt_id, d.deal_nummas, d.deal_cnt_id, d.ntt_id;
|
ORA-00979: not a GROUP BY expression 00979. 00000 - "not a GROUP BY expression" |
C'est possible de faire ce que je veux ?
Message édité par Llorenzaccio le 20-05-2014 à 17:47:41