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 :

MERGE VS SQL(JOIN)


Sujet :

SAS Base

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 244
    Points : 138
    Points
    138
    Par défaut MERGE VS SQL(JOIN)
    Bonjour à tous et bonne rentrée,

    Je suis bloqué pour réaliser une création de table avec un DATA MERGE donc je suis passé en SQL.

    Mais peut être vous avez une solution que je ne connais pas, merci d'avance.

    Voici mes sources :

    Les tables pour le test à créer

    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
    data first_many;
       input IDA1 a1 dt ddmmyy10. x1 $ y1 $;
       format dt ddmmyy10.;
       datalines;
    1 51 11/02/1980 A B
    2 52 31/10/1975 F Q
    3 59 17/05/1970 E R
    4 53 24/02/1956 C D
    5 57 31/12/1974 B C
    6 55 06/06/1982 D G
    7 63 11/02/1980 C D
    ;
    run; 
     
    data second_many;
       input b2 dt ddmmyy10. x2 $ y2 $;
       format dt ddmmyy10.;
       datalines;
    101 31/12/1974 B D
    102 31/12/1974 B F
    103 11/02/1980 A B
    104 11/02/1980 A Z
    105 17/05/1970 E F
    106 06/06/1982 D Q
    107 06/06/1982 D F
    108 06/06/1982 D R
    ;
    run;
    Les scripts utilisés dans mon test

    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
    PROC SORT DATA=first_many;
       BY dt;
    RUN;
     
    PROC SORT DATA=second_many;
       BY dt;
    RUN;
     
    DATA test_merge_fm;
    MERGE 
    	first_many (in = fm)
    	second_many (in = sm);
    BY dt;
    if fm;
    RUN;
     
    PROC SQL;
    	CREATE TABLE test_sql_leftjoin AS
    	Select first_many.*, second_many.* 
    	FROM first_many
    	LEFT JOIN second_many
    	ON first_many.dt = second_many.dt
    	ORDER BY IDA1;
    QUIT;
    j'adore votre forum et je progresse souvent grâce à vous tous, merci encore.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 244
    Points : 138
    Points
    138
    Par défaut
    D'après un livre sur SAS, on ne peut pas faire de many to many avec un merge. il faut utiliser la PROC SQL.

    Merci à tous

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

Discussions similaires

  1. Problème avec SQL join
    Par green_fr dans le forum SAS Base
    Réponses: 0
    Dernier message: 17/11/2008, 14h43
  2. [SQL server] requete sql join/union?
    Par Alex35 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/11/2007, 16h45
  3. SQL JOIN GROUP BY : le melange ne colle pas
    Par french-petzouille dans le forum Requêtes
    Réponses: 10
    Dernier message: 11/10/2007, 14h02
  4. Requête SQL + JOIN
    Par stef51 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 12/06/2007, 15h49
  5. utilisation de la fonction Merge de sql
    Par freestyler dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/10/2006, 14h16

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