IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Fonctionnement WHERE dans PROC SQL sous SAS


Sujet :

SAS Base

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 4
    Points
    4
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 133
    Points : 371
    Points
    371
    Par défaut
    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é

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/02/2012, 12h01
  2. [AC-2007] Clause WHERE dans macro et sous-formulaire de navigation
    Par ultima67 dans le forum IHM
    Réponses: 1
    Dernier message: 10/03/2011, 07h42
  3. Macro variable dans PROC SQL : fusion de SELECT
    Par docteurdorian dans le forum Macro
    Réponses: 6
    Dernier message: 18/11/2010, 14h48
  4. Utilisation de variable Date dans requète SQL sous Access
    Par noakiss dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/03/2008, 09h37
  5. Format dans Requete SQL sous VBA
    Par Sam 069 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/07/2006, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo