Dans un soucis de faire un traitement efficace, je souhaite éviter l'utilisation de procédure stockées. Mon problème est que je n'arrive pas à faire ce que je souhaite et au final je ne sais pas si c'est possible.
J'ai deux tables une qui contient une ligne par couple contact/code_operation
contact A | Code ope A
contact A | Code ope B
contact A | Code ope C
contact B | Code ope B
contact C | Code ope A
contact C | Code ope B
et une seconde dans laquelle je souhaite avoir les contact dédoublonnés et dans une seconde colonne, les codes opération concaténés. Avec l'exemple ci-dessus ça donnerait ça :
contact A |Code ope A;Code ope B;Code ope C;
contact B |Code ope B;
contact C |Code ope A;Code ope B;
J'arrive a dédoublonner mes contacts, mais je coince sur la concaténation des codes opération.
J'arrive a concaténer les code opé pour un contact donné :
Je me suis dit qu'en la mettant dans un update avec une jointure le tour serait joué mais ca ne fonctionne pas. Il ne me met qu'un seul code opération.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DECLARE @AllOpe NVARCHAR(4000); SET @AllOpe = '' SELECT @AllOpe = @AllOpe + CodeOperation + ';' FROM MA_TABLE WHERE contact = 'contact A' PRINT @AllOpe
Voici la requête d'update que j'utilise
Je ne comprends pas trop pourquoi à chaque update il ne me concaténe pas le code operation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 UPDATE D SET D.CodeOperation = ISNULL(D.CodeOperation,'') + G.CodeOperation + ';' FROM MA_TABLE G INNER JOIN MA_TABLE_1 D ON D.Contact = G.Contact
Partager