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 :

Conserver des observations qui ne sont pas présente sur un autre table


Sujet :

SAS Base

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Points : 99
    Points
    99
    Par défaut Conserver des observations qui ne sont pas présente sur un autre table
    bonjour,

    j'ai un soucis

    je ne veux prendre que des observations d'une table qui ne sont pas dans une autre table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data espace.base6;
    merge espace.base(in=a) espace.base5(in=b);
    by ID_PERSONNE;
    if not b;
    run;
    le problème c'est que ça me les prends quand mm

    (nb: j'ai fait de proc sort avant)

  2. #2
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Et if a te donne quoi?

    Une autre alternative:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    proc sql;
    create table espace.base6 as select a.*,b.*
    from espace.base a left join espace.base5 b on a.ID_PERSONNE=b.ID_PERSONNE;
    quit;

  3. #3
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Ca devrait fonctionner comme pour mon exemple.

    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
    data base;
    input store_name $	Sales	mois;
    cards;
    A 1500 5
    B 250 7
    C 300 8
    D 700 8
    ;
    run;
     
    data sales;
    input mois sales;
    cards;
    7 250
    10 350
    11 450
    12 550
    ;
    run;
     
    data test1;
    merge base (in=a) sales (in=b);
    by mois;
    if a and not b;
    run;
    le LEFT JOIN te ramène toute la table 1.

    si tu veux le faire en SQL il faut faire un MINUS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select id_personne from base
    minus
    select id_personne from base5

  4. #4
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    T'as raison Stéphane, par contre minus est réconnue sous SAS?

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Points : 99
    Points
    99
    Par défaut
    oui effectivement ça marche

    juste par curiosité est ce qu'il est possible d'utiliser le except dans une proc sql comme pour le minus??

  6. #6
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Citation Envoyé par huître Voir le message
    juste par curiosité est ce qu'il est possible d'utiliser le except dans une proc sql comme pour le minus??
    Dans SAS, c'est EXCEPT qu'il faut utiliser et non pas MINUS

  7. #7
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Bien vu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    proc sql;
    SELECT a.mois FROM base a
    EXCEPT
    SELECT b.mois FROM sales b
    ;
    quit;

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/02/2009, 17h00
  2. Réponses: 2
    Dernier message: 07/12/2007, 15h20
  3. Réponses: 22
    Dernier message: 04/08/2006, 00h29
  4. Interdire des navigateur qui ne sont pas a jour ?
    Par allpicI2c dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 28/01/2006, 18h30
  5. UNION ? des lignes qui ne sont pas prises...
    Par fred23195 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/12/2005, 14h50

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