|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Stéphanie Business Analyst Inscription : juillet 2011 Messages : 14 ![]() |
Salut à tous,
Je souhaite ajouter une colonne à une table déja existant (c'est un data set) et ensuite l'updater en fonction d'une autre de mes colonnes (avec une clause IF...then...). Je suis habituée à SQL mais je n'arrive pas bien à retrouver ce que je veux dans mon code SAS, ce ne fonctionne pas... Voici mon code actuel: Code :
Ensuite, je voudrais l'Updater avec une de mes colonnes deja existante, "PRODUCT" avec un IF 1 Then "POST" IF 2 Then "PREP"; Merci d'avance de votre aide |
||
|
|
00
|
|
|
#2 | ||||||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour.
Quelque chose comme ça ? Code :
Code :
Code :
Olivier |
||||||
|
|
00
|
|
|
#3 | ||||
|
Membre éclairé
![]() statisticien Inscription : mai 2011 Messages : 212 ![]() |
Bonjour,
si tu cherche une solution tout SQL, je pense que ce code devrait pouvoir faire ce que tu cherche à faire, a condition que tu dispose d'un identifiant pour réaliser la jointure entre tes tables et modulo ma compréhension de ton problème. Code :
Code :
|
||||
|
|
00
|
|
|
#4 | ||||||
|
Invité régulier
![]() Stéphanie Business Analyst Inscription : juillet 2011 Messages : 14 ![]() |
[QUOTE=olivier.decourt;6253875]Bonjour.
Quelque chose comme ça ? Code :
Ce code marche très bien merci! Maintenant je me pose une autre question (lol), dans la partie Code :
Admettons que mon update de colonne soit en fait dépendant de 2 variables différentes, on aurait donc la première product, et une seconde, disons "network", qui lorsqu'elle prend la valeur XYX, attribuerait l'intitulé XYZZ à la nouvelle colonne crée product_type. Aussi, est il possible d'inclure une non condition dans cette clause? Du genre, Code :
Enfin, last but not least, est ce que je peux re-updater ma colonne plus tard? Parce que là j'update après avoir crée la colonne, mais puis je le faire en 2 étapes: créer, puis updater plus tard? Merci beaucoup de votre aide!! P.S: Je ne peux pas partir avec du pur sql car je n'ai pas vraiment de quoi faire une jointure correcte. En plus, ca me parait pas mal plus compliqué? |
||||||
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
1) pour les conditions plus complexes, ça devient
Code :
2) oui tu peux définir ta variable un premier coup (il n'y a qu'à se limiter au bloc ATTRIB dans l'étape DATA) et l'alimenter / la rectifier ensuite. Dans SAS, ce n'est qu'une question de droits sur la table entière, pas sur une colonne en particulier : si tu peux écrire dans la table, tu peux en modifier toutes les variables. Cela dit, pour créer un champ vide dans une table SAS de grosse taille, la proc SQL sera plus rapide que l'étape DATA (enfin je suppose, je n'ai rien testé). Bon courage. Olivier |
||
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Stéphanie Business Analyst Inscription : juillet 2011 Messages : 14 ![]() |
Super, merci beaucoup pour ton aide, j'apprécie vraiment
Allez, une dernière pour la route (lol). Je ne trouve pas comment faire pour Updater ma colonne lorsque les cases sont vides, j'ai tenté le NULL mais ca n'a pas fonctionné! |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
La condition s'écrit
et vaut vrai en cas de NULL. Le souci de SAS c'est qu'il n'y a pas une seule valeur manquante comme NULL, il y en 29 (1 pour les textes et 28 pour les numériques) différentes ! Donc la fonction MISSING est la plus robuste. |
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 1 ![]() |
Bonjour,
J'espère avoir bien compris la question. Si c'est bien le cas je propose une syntaxe SQL qui se traite directement dans le SELECT. Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com