1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| WITH donnees as
(
select 100 as MAT, 3000 as SAL, 'Soc1' as SOC, 'Siège' as ETAB FROM DUAL union
select 200 as MAT, 2200 as SAL, 'Soc1' as SOC, 'Usine1' as ETAB FROM DUAL union
select 300 as MAT, 2200 as SAL, 'Soc1' as SOC, 'Usine1' as ETAB FROM DUAL union
select 400 as MAT, 2500 as SAL, 'Soc1' as SOC, 'Usine2' as ETAB FROM DUAL union
select 500 as MAT, 2600 as SAL, 'Soc1' as SOC, 'Usine2' as ETAB FROM DUAL union
select 600 as MAT, 3000 as SAL, 'Soc2' as SOC, 'Siège' as ETAB FROM DUAL union
select 700 as MAT, 2600 as SAL, 'Soc2' as SOC, 'Usine1' as ETAB FROM DUAL union
select 800 as MAT, 2600 as SAL, 'Soc2' as SOC, 'Usine2' as ETAB FROM DUAL union
select 900 as MAT, 2600 as SAL, 'Soc2' as SOC, 'Usine2' as ETAB FROM DUAL
)
select SOC, ETAB, sum(sal) as Total_Salaire
from donnees
group by soc, rollup(etab); |
Partager