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 :

extraire information dans deux tables grâce à une table de passage


Sujet :

SAS Base

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut extraire information dans deux tables grâce à une table de passage
    bonjour,
    je suis actuellement en stage et là je suis bloquée sur un problème SAS.

    En fait, j'ai 3 tables dont une table de passage. Je cherche à extraire des montant correspondant à des codes entreprises concaténer avec des variables, des produits et des unités (enfin bon, la concaténation est déjà faite). Le problème c'est qu'il y a des codes pour les enquêtes annuelles(table1) et des codes pour des enquêtes mensuelles (table2). Et un code annuelle peut correspondre à plusieurs codes mensuelles. On les connait grâce à la table de passage.

    Pour situer un peu mieux, les champs de mes tables sont :

    table1 (ANNUELLE):
    codeAN (produitAN||variable||unité) MontantAN

    table passage :
    (produitAN||variable||unité) (produitMENS||variable||unité)

    table2 (MENSUELLE):
    codeMENS (produitMENS||variable||unité) MontantMENS

    Donc, je voudrais que quand j'ai (produitAN||variable||unité) de la table1, ça prend la valeur (produitMENS||variable||unité) et quand on a cette valeur, on peut avoir les montantMENS correspondant.

    J'espère que j'ai été assez clair!

    J'espère que vous pourrez m'aider ...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Points : 40
    Points
    40
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    proc sql;
    create table table3 as
    select a.(produitAN||variable||unité), b.codeMENS, b.(produitMENS||variable||unité), b.MontantMENS
    from table1a, table2 b, table_passage c
    where a.(produitAN||variable||unité)=c.(produitAN||variable||unité)
    AND b.(produitMENS||variable||unité)=c.(produitMENS||variable||unité);
    quit;
    J'ai pas testé.

    Si ça marche t'as plus qu'a supprimer (produitMENS||variable||unité) par un DROP.

    ++

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Si j'ai bien compris, il s'agit en fait de faire une jointure entre table_1 et table_2 dont la correspondance des clés de jointure sont dans table_passage...
    Une proc SQL comme suit devrait répondre à la problématique...
    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
    PROC SQL noprint ;
       CREATE TABLE WORK.TFUSION (LABEL="JOINTURE SQL") AS
          SELECT  tp.CodeAN
                 ,t1.MontantAN
                 ,t2.CodeMENS
                 ,t2.MontantMENS 
          FROM table_passage AS tp
              ,table_1 AS t1
              ,table_2 AS t2
          WHERE (
              tp.CodeAN   = t1.CodeAN
          AND tp.CodeMENS = t2.CodeMENS
                )
          ORDER BY t1.CodeAN
       ;
    QUIT ;
    Bon courage !

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/04/2012, 20h18
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  4. Réponses: 5
    Dernier message: 12/09/2008, 19h53
  5. Comment concatener deux champs d'une table d'une BDD.
    Par LESOLEIL dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/05/2006, 10h48

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