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é :

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
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.

Voici la requête d'update que j'utilise

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
Je ne comprends pas trop pourquoi à chaque update il ne me concaténe pas le code operation