Bonjour
Voici une petite colle.
j'ai deux table A et B comme suite
mon soucis est que dans VAL_A et DATE_A, je veux mettre respectivement VAL_B et DATE_B lorsque nous avons le MAX(VAL_B) pour un même ID_A.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE TABLE A (ID_A int, -- identifiant unique de A VAL_A int, DATE_A datetime) CREATE TABLE B (ID_B int, -- identifiant unique de B ID_A int, VAL_B int, DATE_B datetime)
J'ai essayé ce code
Si je remplace l'UPDATE par un SELECT pour tester, cela fonctionne bien. Mais des que je mets UPDATE, j'ai une "Incorrect Syntax near 'GROUP BY'".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 UPDATE A SET A.VAL_A=B.VAL_B, A.DATE_A=B.DATE_B FROM A inner join B on A.ID_A=B.ID_A GROUP BY B.ID_A HAVING B.VAL_B=MAX(B.VAL_B)
J'ai l'impression que GROUP BY et HAVING ne vont pas bien avec UPDATE.
Alors si quelqu'un peut m'éclairer là-dessus.
NB : je travaille sous Sybase.
Partager