1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| WITH data AS
(
SELECT 'ABC' direction, 'camion' designation, 5 quantite, 10 montant FROM dual union ALL
SELECT 'ABC' direction, 'engin' designation, 4 quantite, 20 montant FROM dual union ALL
SELECT 'DEF' direction, 'engin' designation, 3 quantite, 15 montant FROM dual union ALL
SELECT 'DEF' direction, 'mazda' designation, 6 quantite, 10 montant FROM dual
)
select
designation,
sum(quantite) quantite_total,
sum(montant) montant_total,
sum(decode(direction, 'ABC', quantite, 0)) quantite_ABC,
sum(decode(direction, 'ABC', montant, 0)) montant_ABC,
sum(decode(direction, 'DEF', quantite, 0)) quantite_DEF,
sum(decode(direction, 'DEF', montant, 0)) montant_DEF
FROM data
GROUP BY
designation |
Partager