Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2011, 11h04   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 4
Points : 1
Points : 1
Par défaut Récupérer la liste des prix correspondant a la derniere date du mois

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 ) ?

je n'ai pas forcement un prix pour le dernier jour du mois.

voici mon dernier essai ,limité a un article ,qui n'est pas concluant , sur 12 prix 9 sont les premiers jours du mois

Code :
1
2
3
4
5
6
7
8
9
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
fj6gtv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 11h35   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Citation:
comment récupérer la liste des prix correspondant a la derniere date du mois, pour chaque mois (de 2010 par exemple )
Quand un problème est complexe, divise le en plusieurs problèmes plus simples.

Quel est le dernier jour du mois pour chaque article et chaque mois de 2010 ?
Code :
1
2
3
4
SELECT ARTICLE, MONTH(PRIX_DATE) AS Mois, MAX(PRIX_DATE) AS Dernier_jour
FROM TPRIX
WHERE YEAR(PRIX_DATE) = 2010
GROUP BY MONTH(PRIX_DATE)
Faisons une jointure de cette requête avec la table des prix pour récupérer les infos des prix :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
SELECT tmp.Mois, p.PRIX_ID, p.ARTICLE, p.PRIX, p.PRIX_DATE
FROM TPRIX AS p
INNER JOIN 
(
    SELECT MONTH(PRIX_DATE) AS Mois, MAX(PRIX_DATE) AS Dernier_jour
    FROM TPRIX
    WHERE YEAR(PRIX_DATE) = 2010
    GROUP BY ARTICLE, MONTH(PRIX_DATE)
) AS tmp 
  ON tmp.ARTICLE = p.ARTICLE
    AND tmp.Dernier_jour = p.PRIX_DATE
ORDER BY tmp.Mois, p.ARTICLE
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 12h25   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 4
Points : 1
Points : 1
Merci CinePhil,
j'ai juste ajouté ARTICLE dans le select du tmp et ca fonctionne nickel
fj6gtv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 13h11   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Exact, j'avais corrigé ma 1ère requête en cours de rédaction et n'avais pas reporté la modif dans la sous-requête.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h19.


 
 
 
 
Partenaires

Hébergement Web