Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro de SAS
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 15/11/2011, 16h20   #1
Candidat au titre de Membre du Club
 
Femme
Conseil - Consultant en systèmes d'information
Inscription : novembre 2011
Messages : 80
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Maroc

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : novembre 2011
Messages : 80
Points : 12
Points : 12
Par défaut Problème avec Proc Sql Update

Bonjour tt le monde,

J'ai un problème de mise à jour d'une table SAS, dans le code suivant, il exécute juste la première update mais pour la deuxième ca se fé po, je ne sé po pourquoi? Merci d'avance pour vos réponses


Code :
1
2
3
4
5
6
proc sql;
UPDATE interm SET formule=tranwrd("etape0.Ind0+etape0.Ind1","etape0.Ind0","1000" ) 
WHERE formule="etape0.Ind0+etape0.Ind1";
UPDATE interm SET formule=tranwrd("etape0.Ind0+etape0.Ind1","etape0.Ind1","2000" ) 
WHERE formule="etape0.Ind0+etape0.Ind1";
quit;
aminao est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 16h42   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
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 012
Points : 1 713
Points : 1 713
Hello,
bah c'est normal; le deuxième Update ne trouve pas la condition where puisque le champs a déjà été mis à jour avec le premier SCRIPT....
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/11/2011, 16h46   #3
Candidat au titre de Membre du Club
 
Femme
Conseil - Consultant en systèmes d'information
Inscription : novembre 2011
Messages : 80
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Maroc

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : novembre 2011
Messages : 80
Points : 12
Points : 12
même quand j'essaie
Code :
1
2
3
4
5
6
7
8
proc sql;
UPDATE test SET formule=tranwrd("etape0.Ind0+etape0.Ind1","etape0.Ind0","1000" ) 
WHERE formule="etape0.Ind0+etape0.Ind1";
quit;
proc sql;
UPDATE test SET formule=tranwrd("etape0.Ind0+etape0.Ind1","etape0.Ind1","2000" ) 
WHERE formule="1000+etape0.Ind1";
quit;
ca marche po, "etape0.Ind0+etape0.Ind1" devient "etape0.Ind0+2000" et non po "1000+2000"
aminao est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 16h47   #4
Candidat au titre de Membre du Club
 
Femme
Conseil - Consultant en systèmes d'information
Inscription : novembre 2011
Messages : 80
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Maroc

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : novembre 2011
Messages : 80
Points : 12
Points : 12
ok, t'as raison SAM. Merci
aminao est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 16h47   #5
Membre Expert
 
Inscription : mars 2005
Messages : 1 011
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 011
Points : 1 259
Points : 1 259
Envoyer un message via Yahoo à bahraoui


Le deuxième where n'est pas vrai.
Après le premier upadate formule vaut "etape0.Ind0+2000", le deuxième update contient un where formule "etape0.Ind0+etape0.Ind1".

Le code ci-dessous peut répondre à ton besoin:
Code :
1
2
3
4
5
6
proc sql;
UPDATE interm SET formule=tranwrd(formule,"etape0.Ind0","1000" ) 
WHERE INDEX(formule,"etape0.Ind0+")=1;
UPDATE interm SET formule=tranwrd(formule,"etape0.Ind1","2000" ) 
WHERE INDEX(formule,"+etape0.Ind1")=1;
quit;
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 16h48   #6
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
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 012
Points : 1 713
Points : 1 713
bah c'est normal tu mis a jour le même chanps deux fois !!!
tu le transforme en 1000..... et puis en 2000....
que veux tu faire au juste ?
s_a_m 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 13h25.


 
 
 
 
Partenaires

Hébergement Web