|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 221 ![]() |
Bonjour à tous,
Je fais appel à vous car je sens que je suis en rupture... Pour résumer, j'ai une table dans laquelle j'ai une colonne datetime, une colonne 'maDonnee', et d'autres colonnes de données (pas importante dans notre cas) Je souhaite faire une requête qui me récupère la valeur MAX de 'maDonnee' de chaque jour d'un mois donné. Donc en gros 1 ligne / jour en sortie, avec la valeur max de maDonnee. J'ai tenté plein de chose avec du MAX(date), du GROUP BY Day(date), MAX(maDonnee)... J'ai mixé un peu tout ça, mais je n'arrive pas au résultat voulu. Auriez vous la gentillesse de me sortir de la souffrance ? ![]() Merci d'avance. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Bonjour,
Votre type Date, est-ce un timestamp (avec heure , minutes, secondes, etc) ou une date (avec juste année / mois / jour) ? Sinon votre requete va ressembler a ceci : Code :
De plus le group by pourrai changer si votre date est un timestamp. |
||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 221 ![]() |
Bonjour,
MySql, champ Datetime (YYYY-mm-dd hh:ii:ss) Merci d'avance |
|
|
00
|
|
|
#4 | ||||
|
Membre éprouvé
![]() Inscription : novembre 2004 Messages : 339 ![]() |
Bonjour
A partir d'une table test : Code :
Code :
Test réalisé sous SQL Server, sous MySQL il faudra certainement remplacer les noms de fonctions. J'espère que ça fonctionnera. +++
__________________
Christophe B. Aide toi et www.developpez.com t'aidera ! Le Soleil se lève pour celui qui va à sa rencontre ! Le meilleurs moyen de prévoir le futur est encore de le créer ! |
||||
|
|
01
|
|
|
#5 | ||
![]() ![]() |
Il suffit d'arrondir la colonne datetime à la journée :
Code :
Il faut alors impérativement posséder une table calendrier dans votre modèle de données, et faire une jointure externe à partir de celle-ci.
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#6 | |||
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 221 ![]() |
Citation:
Mais je viens à mon avis de trouver mon problème de base, mon champ (maDonnee) est de type 'varchar', de ce fait il ne peut pas être traité comme un int. Y aurais t-il un moyen de forcer ça ? |
|||
|
|
00
|
|
|
#7 | ||||
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 221 ![]() |
J'ai trouvé une partie de la réponse, il faut faire un CAST pour forcer en INT
Code :
Code :
|
||||
|
|
00
|
|
|
#8 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Il suffit juste de passer par une table dérivée :
Code :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
||
|
|
00
|
|
|
#9 | |||
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 221 ![]() |
Citation:
Merci, je viens de tenter dans tous les sens, mais visiblement ça me sort la somme de 'maDonnee' sur chaque journée, et non la somme des valeurs MAX de chaque journée |
|||
|
|
00
|
|
|
#10 | |||||
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 221 ![]() |
Citation:
J'ai compris en écrivant mon dernier message Il suffit de grouper par date dans la table dérivée, et de grouper ensuite par jour dans la requête de base (je connais pas les termes exacts). Ça donne un truc comme ça : Code :
Merci à tous |
|||||
|
|
00
|
|
|
#11 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Il ne faut pas oublier d'adapter le requête au besoin !
Code sql :
notamment, mettre le CASTet enlever le SUM |
||
|
|
00
|
|
|
#12 | |||
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 221 ![]() |
Citation:
Merci de ta réponse, mais il faut effectivement un SUM je pense, car nous prenons plusieurs donnée dans la "requête dérivée" |
|||
|
|
00
|
|
|
#13 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Je ne comprend pas. Dans ce message tu reprochais que la somme soit faite
Citation:
??????Citation:
|
||
|
|
00
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2007 Messages : 221 ![]() |
Non non, il y avais problème de compréhension car enfaite, je dois grouper des ID différents ( WHERE id IN(1,2,3)) qui ont plusieurs valeurs par jour.
Je souhaite sortir la somme des valeurs MAX par jour pour ce groupe. Je sais, c'est pas très clair, mais je m'embrouille moi même
|
|
|
00
|
|
|
#15 | ||
![]() ![]() |
Je ne vois nulle part dans vos codes où vous gérez cette problématique.
À mon avis il faut essayer quelque chose de ce type-là : Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
Copyright © 2000-2012 - www.developpez.com