Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2412 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Requete Group By en prenant les infos du plus petit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Requete Group By en prenant les infos du plus petit

n°1832252
Lenoiche
Posté le 29-12-2008 à 17:14:34  profilanswer
 

Bonjour
 
J'ai une table  
 

Code :
  1. Produit                     Prix                     Date
  2. Voiture                    1000                    10/08/06
  3. Voiture                    1500                    01/10/06
  4. Camion                    2500                    26/03/08
  5. Voiture                    900                      01/12/08
  6. Camion                    2000                    01/12/08


 
J'aimerais récupérer le prix le plus bas pour chaque produit et la date du prix correspondant
 
J'arrive a récupérer le prix minimum pour chaque produit mais sans la date
 

Code :
  1. Select Produit, min(prix) from Matable group by produit


 
Est ce que c'est possible, parce que je ne vois pas trop ...
 
Merci


Message édité par Lenoiche le 29-12-2008 à 17:37:57
mood
Publicité
Posté le 29-12-2008 à 17:14:34  profilanswer
 

n°1832257
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-12-2008 à 17:20:11  profilanswer
 

Select Produit, min(prix), Date from Matable group by produit, date [:petrus dei]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1832265
Lenoiche
Posté le 29-12-2008 à 17:33:22  profilanswer
 

Harkonnen a écrit :

Select Produit, min(prix), Date from Matable group by produit, date [:petrus dei]


 
ta requete va me retourne le prix le plus bas pour chaque produit pour CHAQUE DATE
Si j'execute ta requete, elle me retournera dans mon exemple, tout le contenu de la table
 
hors j aimerais juste récupérer  

Code :
  1. Voiture                    900                      01/12/08
  2. Camion                    2000                    01/12/08


n°1832269
Tibar
Posté le 29-12-2008 à 17:52:56  profilanswer
 

Salut,
 
Sur SQL Server, j'aurai tenté un truc dans ce genre :  
 
SELECT M1.Produit, M1.Prix, MIN(M1.Date)  
FROM MATABLE M1
INNER JOIN  
 (
 SELECT M2.Produit Pro2, MIN(M2.Prix) Pri2
 FROM MATABLE M2
 GROUP BY M2.Produit
 )
 DRV ON DRV.Pro2 = M1.Produit AND DRV.Pri2 = M1.Prix
GROUP BY M1.Produit, M1.Prix
 
Je n'ai pas d'environnement de test, mais à mon avis tu seras obligé de passer par une sous requete...
 
Ici, on sort donc dans la requête principale le produit, le prix minimum et la date minimum du produit à ce prix, puisque la jointure est faire sur le produit et le prix minimum. Le MIN(Date) permet d'éliminer la possibilité que tu aies plusieurs fois le produit au même prix et que ça retourne n'importe lequel...
 
Je sais que cette syntaxe est à priori valide sous SQL Server,
 
Bon courage,

n°1832288
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-12-2008 à 19:57:09  profilanswer
 

Lenoiche a écrit :

 

ta requete va me retourne le prix le plus bas pour chaque produit pour CHAQUE DATE
Si j'execute ta requete, elle me retournera dans mon exemple, tout le contenu de la table

 

hors j aimerais juste récupérer

Code :
  1. Voiture                    900                      01/12/08
  2. Camion                    2000                    01/12/08




ah oui très juste [:petrus75]
bon alors si la requête de Tibar ne donne rien, essaie ça :

 

SELECT Produit, Date, (SELECT Min(Prix) FROM MaTable M1 WHERE M1.Produit = M2.Produit AND M1.Prix = M2.Prix GROUP BY M1.Produit, M1.Prix) AS Miniprix
FROM MaTable M2

 

pas testé par contre [:petrus75]


Message édité par Harkonnen le 29-12-2008 à 19:58:52

---------------
J'ai un string dans l'array (Paris Hilton)
n°1832524
Lenoiche
Posté le 30-12-2008 à 15:13:22  profilanswer
 

okay merci les guys
teste la methode de tibar, elle fonctionne nickel
 
:jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Requete Group By en prenant les infos du plus petit

 

Sujets relatifs
Problème de connexion avec SQL serveur 2005Petit problème d'affichage HTML
[C# - VB.NET - SQL] arrondir un prix (sans virgule)!Petit souci de ' et de "
Access - requete pour regrouper plusieurs champs en 1 seul[Résolu] - [SQL] count(*) pour des attributs différents
Connexion à une base Sql Serveur sous linuxRequète Access
[ Resolu ] Ma requete ne fonctionne qu'à moité ! Avez-vous une idée ?[MS Access] Requete sur horodatage "flou"
Plus de sujets relatifs à : [SQL] Requete Group By en prenant les infos du plus petit


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR