Bonjour,
la réponse doit surement être toute bete mais je débute SAS.
J'ai 2 tables ayant un champ "code_produit", je souhaite faire une requete
avec une jointure type LEFT JOIN, mais dans un cas ce code est sur 4 caractères et dans l'autre 6 (les 00 inutiles en début de chaine ont été supprimés et je ne maitrise pas le format d'import) :
exemple :
table 1
code_produit : 1956
table 2
code_produit : 001956
J'ai essayé ça :
mais j'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 from baseh.SCorres as corres left join htdwh.codes_samse_import as codes_import ON ( case when length(corres.SCode)=5 then compress("0"!!corres.SCode)=put(codes_import.code_samse,BEST6.) else when length(corres.Scode)=4 then compress("00"!!corres.SCode)=put(codes_import.code_samse,BEST6.) else when length(corres.Scode)=6 then corres.SCode=put(codes_import.code_samse,BEST6.) end );
Je suis sur que vous allez me blaser tellement ça doit être simple mais je tourne en rond depuis un moment sur ce soucis.
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 1881 /* case when compress(sections.profil)ne '' then 1881! compress(vol.profil)=compress(sections.profil) else 1=1 end */ 1882 ON ( case when length(corres.SCode)=5 then 1882! compress("0"!!corres.SCode)=put(codes_import.code_samse,BEST6.) 1883 else when length(corres.Scode)=4 then ------ 22 76 1883! compress("00"!!corres.SCode)=put(codes_import.code_samse,BEST6.) ERREUR 22-322: Erreur de syntaxe ; syntaxe requise : !, !!, &, (, *, **, +, -, /, <, <=, <>, =, >, >=, ?, AND, BETWEEN, CONTAINS, EQ, EQT, GE, GET, GT, GTT, LE, LET, LIKE, LT, LTT, NE, NET, OR, ^=, |, ||, ~=. ERREUR 76-322: Erreur de syntaxe ; l'instruction sera ignorée. 1884 else when length(corres.Scode)=6 then 1884! corres.SCode=put(codes_import.code_samse,BEST6.) 1885 end 1886 ); 1887 quit;
Merci de votre aide.
Partager