rufo Pas me confondre avec Lycos! | Bonjour,
J'ai une table Historique qui contient les changements de certaines valeurs pour des personnes et qui a les champs suivantes :
ID (id de l'entrée dans historique, 1 à n)
Date (date de l'entrée dans l'historique, au format yyyy-mm-dd hh:mm:ss)
IDPersonne (ID de la personne concernée par un changement des valeurs qui viennent après)
Valeur1
Valeur2
Je voudrais faire une requête qui, pour chaque mois-année et chaque personne, me donne les valeurs (valeur1, valeur2...) qu'il avait à la fin du mois. J'ai fai la requête suivante :
Code :
SELECT h.IDPersonne, HistoTmp.YEARMONTH, h.Valeur1 FROM Historique h, (SELECT th.IDPersonne, DATE_FORMAT(th.Date, '%Y-%m') AS YEARMONTH, MAX(th.ID) AS MaxHistoID FROM Historique th WHERE th.IDPersonne IN (1, 2, 38, 75) AND th.Date BETWEEN '2018-07-01' AND '2018-10-31' GROUP BY th.IDPersonne, YEARMONTH) AS HistoTmp WHERE h.ID= HistoTmp.MaxHistoID ORDER BY h.IDPersonne, HistoTmp.YEARMONTH
|
Problème : pour certaines personnes, il arrive qu'ils n'aient pas de changement de valeur dans leur historique certains mois. J'ai donc des trous. Je voudrais donc que pour les mois-années où les personnes n'ont pas d'entrée dans leur historique, ça prenne la valeur du mois précédent. Je dois avouer que je sèche. Je ne veux pas passer par une procédure stockée.
Merci par avance pour votre aide. ---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
|