Bonjour,
J'aimerai vos lumière concernant le fonctionnement de l'instruction where dans la proc SQL...
Je rencontre souvent l'erreur:
ERROR: Les fonctions de synthèse sont limitées aux clauses SELECT et HAVING uniquement.
J'ai testé avec Having car de ce que j'ai pu lire, l'instruction having est a utiliser lorsqu'on utilise un group by ..
Exemple code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| data test;
format Date Datebis ddmmyy10.;
input ID $1. Date ddmmyy10. Datebis ddmmyy10. VAR1 ;
cards;
101/03/201002/03/2010 100
101/06/201002/06/2010 350
101/09/201002/09/2010 530
301/09/201002/09/2010 120
301/12/201002/01/2011 300
301/12/201009/01/2011 600
301/03/201102/03/2011 240
301/06/201102/06/2011 310
301/09/201102/09/2011 590
301/12/201102/12/2011 690
301/03/201202/03/2012 130
;
run;
proc sql;
create table tt as
select * , SUM(a.VAR1) as SOMME
from test as a
where max(a.Date) and a.Datebis in (
select max(b.Datebis) from test b
where a.Date = b.Date
group by b.Date)
group by a.ID;
quit; |
Merci ..
Louis
Partager