Bonjour,
J'ai cherché sur le forum, mais je n'ai pas trouvé de solution qui me donne le résultat recherché.
J'ai une table très volumineuses (plus de 4 millions d'individus) qui conserve les rabais accordés à divers clients pour les deux dernières années où ils ont obtenus un rabais.
Elle ressemble à ceci (fausses données):
ID Succursale Annee1 Annee2 Rabais1 Rabais2
1000 A 2018 2017 50 25
1000 B 2017 2016 10 30
1001 A 2018 . 50 .
1002 B 2015 2014 20 30
1003 A 2018 2017 50 25
1003 B 2018 2017 10 20
1003 C 2017 2016 10 30
Je désire obtenir une table avec chaque ID et le total de rabais obtenus pour 2018 et pour 2017, comme ceci:
ID Rabais2018 Rabais 2017
1000 50 35
1001 50 .
1002 . .
1003 60 55
J'ai essayé le code suivant:
proc sql;
create table nouvelletable as
select distinct ID,
case when annee1 = 2018 then sum(Rabais1)
when annee2 = 2018 then sum(Rabais2)
else 0
end as rab_2018,
case when annee1= 2017 then sum(Rabais1)
when annee2 = 2017 then sum(Rabais2)
else 0
end as rab_2017
from matable
group by ID
order by ID;
quit;
Ça ne me donne pas le résultats escompté, mais c'est le plus prêt que j'ai jusqu'à présent.
Pouvez-vous m'aider?
Partager