Bonjour,
J'ai un souci pour trouver une bonne syntaxe SQL.
Je dois corriger une table qui a cette structure (très simplifié)
Le problème est que je veux faire un UPDATE de cette table pour corriger la date de fin du produit n°3 qui a les dates qui se chevauchent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 PR DEB FIN 1 2005 2006 1 2006 2008 1 2008 2009 2 1998 2002 2 2002 2005 2 2005 2009 3 1998 2005 3 2000 2002 3 2001 2008
Je veux obtenir ça :
A priori c'est facile il suffit de faire un UPDATE avec un t1 INNER JOIN t2 sur la même table avec la date de fin t1 = date debut t2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 PR DEB FIN 3 1998 2000 3 2000 2001 3 2001 2008
Le pb est que pour la première ligne j'aurais 2 possibilités et donc la BDD va d'abord mette la date de fin à 2000 puis le mettra à 2001. Il faudra alors reexecuter la même requête pour remettre la date de fin à 2001.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 premier passage: PR DEB FIN 3 1998 2001 3 2000 2001 3 2001 2008 deuxième passage: PR DEB FIN 3 1998 2000 3 2000 2001 3 2001 2008
Alors, comment trouver la bonne date de début en une seule requête?
Partager