Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/06/2011, 16h37   #1
Invité régulier
 
Inscription : avril 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 60
Points : 8
Points : 8
Par défaut Insérer une table dans une autre table

Bonjour à tous!

Je cherche à insérer une table dans une autre table avec les mêmes variables... Quelqu'un aurait une idée?
Je sais comment faire pour insérer des lignes avec des macrovariables, mais c'est assez limité quand même car j'ai énormément de lignes à insérer...

Merci beaucoup à tous
Misspatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 17h00   #2
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
A priori ce que tu cherches doit pouvoir se faire par l'instruction set.

Mais il y a peut etre une meilleure alternative (voire une approche de substitution) suivant les particularites de ton probleme.
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 17h01   #3
Membre habitué
 
Homme
Consultant informatique
Inscription : mars 2002
Messages : 211
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2002
Messages : 211
Points : 133
Points : 133
Il y a aussi l'instruction APPEND je crois.

Ca dépend aussi de ce que tu veux faire exactement:
Rajouter des lignes dans une table?
Y a-t-il des doublons?
Une simple copie de table?(je suppose que non)
L0007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 17h27   #4
Invité régulier
 
Inscription : avril 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 60
Points : 8
Points : 8
Il n'y a pas de doublons et il s'agit effectivement de rajouter des lignes dans une table...
Je ne connais pas l'instruction append... A utiliser dans une data?
Misspatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 17h29   #5
Invité régulier
 
Inscription : avril 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 60
Points : 8
Points : 8
Visiblement, la solution est :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DATA x1;
    do i=1 TO 5;
        a=ranuni(0)*10;
        output;
    end;
run;
 
DATA x2;
    do i=6 TO 10;
        a=ranuni(0)*10;
        output;
    end;
run;
 
DATA x1;
    SET x1 x2;
run;

En tout cas merci beaucoup à tous
Misspatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 18h02   #6
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
hello,
j'opte pour la proc append, une seule table sera chargée en mémoire celle de data=,

si tu veux tester sur des tables volumineuses et comparer le statement set et la proc append , ajoutes au début du programme l'option:
Code :
1
2
 
options fullstimer;
il y a aussi l'option force qui permet de rajouter un jeux de données au premier jeux de données même si les variables sont de longueurs différentes ou types différents .
Code :
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 x1;
length a 8;
informat a 30.10;
    do i=1 TO 5;
        a=ranuni(0)*10;
        output;
    end;
run;
 
DATA x2;
 
    do i=6 TO 10;
        a=put(ranuni(0)*10,best.);
        output;
    end;
run;
 
 
DATA x3;
SET x1 x2;
run;
 
proc append base=x1 DATA=x2 force;
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/07/2011, 15h45   #7
Invité régulier
 
Inscription : avril 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 60
Points : 8
Points : 8
Merci beaucoup
Misspatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h48.


 
 
 
 
Partenaires

Hébergement Web