Bonjour,
Je suis en train de développer un reporting sur un système opérationnel et je me trouve actuellement devant un petit problème.
Dans l'application, j'ai une table de prix qui est censée être historisée... quand il y a changement de prix, il doit y avoir une Startdate et une Enddate pour l'ancien prix. Puis une nouvelle ligne avec le nouveau prix, la startdate du nouveau prix (qui doit être égale à la enddate de l'ancien) et une nouvelle enddate (1/1/9999 serait l'idéal).
Le problème que j'ai, c'est que les enddates ne sont pas remplies quand il y a un nouveau prix (les startdates bien). Ca n'a pas été géré automatiquement dans l'application (ça devrait être corrigé).
Ce que j'aimerais entre temps, c'est créer une vue sur base de cette table de prix avec les valeurs correctes pour les enddates.
Donc la règle est simple, si j'ai ça dans ma table :
prix - startdate - enddate
650 - 1/7/2006 - NULL
675 - 1/4/2007 - NULL
700 - 1/9/2007 - NULL
je dois avoir dans ma vue
prix - startdate - enddate
650 - 1/7/2006 - 1/4/2007
675 - 1/4/2007 - 1/9/2007
700 - 1/9/2007 - 1/1/9999
la enddate du record actuel = startdate du record suivant; si pas de record suivant : 1/1/9999
Comment est-ce que je peux traduire ça en SQL pour remplir ma vue sans devoir passer par un patch avec des curseurs?
Merci d'avance
Partager