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 :

comment actualiser les colonne d'une table sas automatiquement?


Sujet :

SAS Base

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut comment actualiser les colonne d'une table sas automatiquement?
    Bonjour ,

    voila j'ai un probleme, je doit créer 2 tables test1 et test2, j'ai fait un lien entre les 2 dans la table 3, mais moi je veut que quant j'ajoute une colonne suplementaire dans test1 c'est a dire V3 j'aurait pas besoin d'ajouter dans test3 max(V3), ca doit ce faire automatiquement.
    donc comment faire? j'ai essaié avec p.* dans test3 mais on peu pas metre max(p.*)
    j'attend vous reponses, merci d'avance

    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 test1 ;
    input valeur   V1  V2 ;
    datalines;
    700  1 0
    111  0 1
    ;
    run;
     
    data test2;
    input id  clef ;
    datalines;
    72  700
    85  700
    85  111   
    ;
    run;
     
    proc sql;
    create table test3 as select t.id,max(p.V1) "V1",max(p.V2) "V2"
        from test2 t t,test1 p
    	  where t.clef=p.valeur
    	    group by t.id
    		  order by t.id
    ;
    quit;

  2. #2
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 56
    Points : 72
    Points
    72
    Par défaut
    Bonjour,

    Voici une réponse en passant classiquement par la procédure contents. En espérant que ca résolve bien ton souci.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    DATA test1 ;
    input valeur   V1  V2 V3;
    datalines;
    700  1 0 2
    111  0 1 0
    ;
    run;
     
    DATA test2;
    input id  clef ;
    datalines;
    72  700
    85  700
    85  111   
    ;
    run;
     
    proc contents data=test1 out=contents;
    run;
     
    data _null_;
      set contents(where=(upcase(name) ne "VALEUR"));
      call symput("Nb_Var", compress(_N_));
      call symput(catt("Var_", compress(_N_)), compress(name));
    run;
     
    %macro testt();
      proc sql;
      CREATE table test_0 AS 
          SELECT t.id,
            %do i=1 %to &Nb_var.;
              %if &i ne &Nb_var. %then %do;
                max(p.&&Var_&i) as &&Var_&i ,
              %end;
              %else %do;
                max(p.&&Var_&i) as &&Var_&i 
              %end;
            %end;
          FROM  test2 t,
                test1 p
      	  WHERE t.clef=p.valeur
      	    GROUP BY t.id
      		  ORDER BY t.id
      ;
      quit;
    %mend testt;
    %testt();

    PS:J'ai oublié de commenter mais si besoin, je pourrai les rajouter!

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    je doit arrivé a ce resultat (table 1) à partir des 2 tables (base1 et base2) , et cela autaumtiquement, comment faire ?
    merci d'avance

    table 1
    id V1 V2
    72 1 0
    85 1 0
    85 0 1

    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
    data base1 ;
    input valeur $ 1-3 temoin $ 7-8  ;
    datalines;
    100  V1
    200  V2
    ;
    run;
     
    data base2;
    input id  1-2 valeur $ 4-6;
    datalines;
    72 100
    85 100
    85 200   
    ;
    run;

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/01/2015, 16h42
  2. Réponses: 1
    Dernier message: 15/01/2014, 17h16
  3. Réponses: 7
    Dernier message: 22/09/2011, 09h03
  4. Comment rendre les colonnes d'une Table de même longueur avec LWUIT ?
    Par andrianiaina dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 25/05/2011, 07h35
  5. comment modifier les données d'une table à travers un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 12
    Dernier message: 19/07/2005, 09h51

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