Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/11/2011, 16h09   #1
Invité de passage
 
Homme
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Par défaut Fonctionnement WHERE dans PROC SQL sous SAS

Bonjour,

J'aimerai vos lumière concernant le fonctionnement de l'instruction where dans la proc SQL...

Je rencontre souvent l'erreur:
Code :
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:

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
essai_sas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 17h38   #2
Membre habitué
 
Sébastien Ringuedé
Inscription : janvier 2011
Messages : 61
Détails du profil
Informations personnelles :
Nom : Sébastien Ringuedé
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : janvier 2011
Messages : 61
Points : 114
Points : 114
la clause WHERE permet la sélection des lignes qui seront ensuite traitée par ta requête : tu ne peux spécifier que des conditions simples ou des conditions basées sur une combinaison de colonnes d'une même ligne - par conséquent, pas de fonctions de synthèses (qui elle, combinent des lignes d'une même colonne).

HAVING permet de sélectionner des lignes qui seront versées dans le résultat (table ou rapport) - le rapport ou la table est construit, au moyen de HAVING, tu spécifies des conditions d'appartenance au résultat.

et pour ton autre problème, on voit ça dans la filière dédiée...

a+

Sébastien Ringuedé
z6c3po est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h43.


 
 
 
 
Partenaires

Hébergement Web