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 :

Utilisation de la clause exists dans proc sql


Sujet :

SAS Base

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut Utilisation de la clause exists dans proc sql
    Bonjour,
    Je n'ai manifestement pas tout compris dans la clause Exists.
    Voici un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data A; input X Y  @@; cards;
    1 2 3 4 1 3 2 4             
    ;
    data B; input X Y @@; cards;
    2 4 1 2 3 1
    ;
    proc sql; create table C as select X, Y from A where not exists (select X, Y from B); quit;
    Je cherche à obtenir dans la table C, les observations de la table A qui ne sont pas incluses dans la table B. Or, le code ne renvoie aucun résultat.
    Est-ce que quelqu'un saurait m'expliquer ?
    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 83
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Exists va tester retourne vrai si la sous-requete retourne au moins un resultat. si tu execute ta sous requete, elle renvoie l'ensemble des x,y dans B.
    donc not exists renvoi toujours faux.

    si tu veux uniquement les couples (x,y) de A qui sont également dans b,
    alors tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    proc sql;
      create table  C as 
       select x,y from A except (SELECT X, Y FROM B);quit;

  3. #3
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par cscerim3 Voir le message
    Bonjour,

    si tu veux uniquement les couples (x,y) de A qui ne sont pas également dans b,
    alors tu peux utiliser !
    C'est parfait, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pointer champs de table dans proc sql
    Par granchef dans le forum Macro
    Réponses: 3
    Dernier message: 27/02/2014, 16h12
  2. Clause DISTINCT dans Requête SQL/MDX créé
    Par Djene dans le forum Cognos
    Réponses: 2
    Dernier message: 30/10/2013, 15h25
  3. [SQL] Fonctionnement WHERE dans PROC SQL sous SAS
    Par essai_sas dans le forum SAS Base
    Réponses: 1
    Dernier message: 05/11/2011, 17h38
  4. Utiliser un alias de colonne dans une clause Where MS SQL
    Par sir dragorn dans le forum Langage SQL
    Réponses: 11
    Dernier message: 12/10/2011, 09h31
  5. Macro variable dans PROC SQL : fusion de SELECT
    Par docteurdorian dans le forum Macro
    Réponses: 6
    Dernier message: 18/11/2010, 14h48

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