Mysql Récupérer les prix de fin de mois
Résolu
fj6gtv
-
NANILOVE -
NANILOVE -
Bonjour,
voici mon probleme
une table mysql TPRIX avec les champs suivant:
PRIX_ID , ARTICLE , PRIX , PRIX_DATE
j'ai des milliers d'articles et un prix quasi quotidien
comment récupérer la liste des prix correspondant a la derniere date du mois, pour chaque mois (de 2010 par exemple ) ?
voici mon dernier essai ,limité a un article ,qui n'est pas concluant , sur 12 prix 9 sont les premiers jours du mois :(
select PRIX_ID,ARTICLE,PRIX,PRIX_DATE from TPRIX T1 where ARTICLE=1298 and PRIX_DATE = (select max(T2.PRIX_DATE)) from TPRIX T2 where T1.PRIX_ID=T2.PRIX_ID ) group by ARTICLE,year(PRIX_DATE),month(PRIX_DATE)
merci d'avance
fj6gtv
voici mon probleme
une table mysql TPRIX avec les champs suivant:
PRIX_ID , ARTICLE , PRIX , PRIX_DATE
j'ai des milliers d'articles et un prix quasi quotidien
comment récupérer la liste des prix correspondant a la derniere date du mois, pour chaque mois (de 2010 par exemple ) ?
voici mon dernier essai ,limité a un article ,qui n'est pas concluant , sur 12 prix 9 sont les premiers jours du mois :(
select PRIX_ID,ARTICLE,PRIX,PRIX_DATE from TPRIX T1 where ARTICLE=1298 and PRIX_DATE = (select max(T2.PRIX_DATE)) from TPRIX T2 where T1.PRIX_ID=T2.PRIX_ID ) group by ARTICLE,year(PRIX_DATE),month(PRIX_DATE)
merci d'avance
fj6gtv
A voir également:
- Mysql Récupérer les prix de fin de mois
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer compte yahoo sans numéro de téléphone - Guide
- Récupérer mon compte facebook désactivé - Guide
- Récupérer un numéro de téléphone effacé - Accueil - Android
4 réponses
Bonjour,
Je modifierais la clause WHERE de ta sous requête :
Xavier
Je modifierais la clause WHERE de ta sous requête :
SELECT PRIX_ID, ARTICLE, PRIX, PRIX_DATE FROM TPRIX T1 WHERE ARTICLE=1298 AND PRIX_DATE = (SELECT MAX(T2.PRIX_DATE)) FROM TPRIX T2 WHERE T1.ARTICLE = T2.ARTICLE AND YEAR(T1.PRIX_DATE) = YEAR(T2.PRIX_DATE) AND MONTH(T1.PRIX_DATE) = MONTH(T2.PRIX_DATE)) GROUP BY ARTICLE, year(PRIX_DATE), month(PRIX_DATE)
Xavier
merci de ta reponse rapide .. mais ca ne change rien
c'est comme si la requete ne tenait pas compte du max dans la clause
.. d'ailleurs avec min ou sans fonction j'ai toujours le meme resultat
voici un resultat ou j'ai ajouté le max dans le select ( avec ta modif xavier )
PRIX_ID ; ARTICLE; PRIX ; PRIX_DATE ; max(PRIX_DATE)
1951214 ;639; 399.72; 15.01.2010; 31.01.2010
1971914; 639; 267.82; 15.02.2010; 28.02.2010
1989320 ;639; 397.4; 15.03.2010; 31.03.2010
2009066 ;639; 498.43; 15.04.2010; 30.04.2010
2033604 ;639; 426.22; 17.05.2010; 31.05.2010
2047259 ;639; 330.54; 15.06.2010; 30.06.2010
2065846 ;639; 324.6; 15.07.2010; 31.07.2010
2087235 ;639; 384.87; 16.08.2010; 31.08.2010
2107831 ;639; 435.86; 15.09.2010; 30.09.2010
2128646 ;639; 576.71; 15.10.2010; 31.10.2010
2147810 ;639; 600.27; 15.11.2010; 15.11.2010
c'est comme si la requete ne tenait pas compte du max dans la clause
.. d'ailleurs avec min ou sans fonction j'ai toujours le meme resultat
voici un resultat ou j'ai ajouté le max dans le select ( avec ta modif xavier )
PRIX_ID ; ARTICLE; PRIX ; PRIX_DATE ; max(PRIX_DATE)
1951214 ;639; 399.72; 15.01.2010; 31.01.2010
1971914; 639; 267.82; 15.02.2010; 28.02.2010
1989320 ;639; 397.4; 15.03.2010; 31.03.2010
2009066 ;639; 498.43; 15.04.2010; 30.04.2010
2033604 ;639; 426.22; 17.05.2010; 31.05.2010
2047259 ;639; 330.54; 15.06.2010; 30.06.2010
2065846 ;639; 324.6; 15.07.2010; 31.07.2010
2087235 ;639; 384.87; 16.08.2010; 31.08.2010
2107831 ;639; 435.86; 15.09.2010; 30.09.2010
2128646 ;639; 576.71; 15.10.2010; 31.10.2010
2147810 ;639; 600.27; 15.11.2010; 15.11.2010
merci xavier j'ai eu ma reponse :
https://www.developpez.net/forums/d1021135/bases-donnees/mysql/requetes/recuperer-liste-prix-correspondant-derniere-date-mois/
https://www.developpez.net/forums/d1021135/bases-donnees/mysql/requetes/recuperer-liste-prix-correspondant-derniere-date-mois/