|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : février 2007 Messages : 187 ![]() |
Bonjour,
J'ai une table "maTable", Qui contient 6 colonnes: Je voudrais récupérer le champ VALEUR pour chaque groupe de (COL_1, COL_2,COL_3) ayant la date la plus récente. Impossible de trouver une requête efficace... J'ai essayer ceci : Code SQL :
SELECT VALEUR FROM maTable WHERE DATE IN (SELECT max(DATE) FROM maTable GROUP BY COL_1, COL_2,COL_3) Mais je sais que ce n'est pas la bonne solution (d’ailleurs les valeurs retournées ne sont pas bonnes) Merci d'avance pour vos réponses. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 646 ![]() |
MySql c'est pas terrible pour ce genre de requête.
Essayez ceci : Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL !
Code :
__________________
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 ! |
||
|
20
|
|
|
#4 |
|
Membre du Club
![]() Inscription : février 2007 Messages : 187 ![]() |
La réponse de CinePhil marche bien (désolé pour l'utilisation du mot champ
Il ne me reste plus qu'une contrainte pour résoudre définitivement cette problématique : Une des colonnes "t1.col_1, t1.col_2, t1.col_3" peut être nulle, je doit cependant pouvoir les récupérer. J'ai essayer avec RIGHT JOIN au lieu du INNER JOIN, mais rien n'y fait... Besoin d'encore un peu d'aide. Merci d'avance. |
|
|
00
|
|
|
#5 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Pour faire ce que vous souhaitez, on peut mettre dans la condition de jointure un COALESCE avec, en deuxième argument, une valeur que ne peut pas prendre chaque colonne. Si on disposait au moins du type de chaque colonne, ça serait plus simple pour vous aider. Disons que chacune des ces 3 colonnes est de type entier, et qu'elles ne peuvent prendre que des valeurs positives. Dans ce cas, chaque colonne ne peut pas valoir -1 (par exemple), et la requête devient : Code :
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
10
|
|
|
#6 |
|
Membre du Club
![]() Inscription : février 2007 Messages : 187 ![]() |
Avec un COALESCE cela fonctionne très bien. Merci ced !
Mes colonnes sont de type varchar donc je ne voyait pas trop ce que je pouvais mettre comme valeur que ne peut pas prendre chaque colonne donc j'ai laissé "-1" et je doit me contraindre à ne pas mettre "-1" dans colonnes. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com