|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : mai 2003 Messages : 119 ![]() |
Bonjour à tous,
Quand je fais la query ci-dessous, l'application ne me retourne pas le résultat souhaité. Code :
Code :
Donc il me faudrait comme résultat 156 dans XNHP pour XNUMINT = 1 Quelqu'un pourrait-il me donner la query adéquate pour cette opération Merci d'avance pour votre aide Jeankiki |
||||
|
|
00
|
|
|
#2 | ||
|
Futur Membre du Club
![]() Inscription : février 2004 Messages : 43 ![]() |
Essaie un truc du genre.
Il faut pouvoir selectionner le mois dans ton select. je connais l'UDF extractmonth pour cela. Code :
|
||
|
|
00
|
|
|
#3 | |||||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Donc à chaque date différente il fa faire une ligne et même pire, à chaque xnhp différent il va faire une ligne... Comme vous l'a expliqué iguanevif, il faut que vous changiez votre regroupement. Donc par exemple : Code :
La première colonne correspond à xnumint, la seconde à la plus petite date trouvé, la triosième colonne à la plus grande date trouvée et la dernire colonne à la somme des xnhp pour ce xnumint. Mais vous pouvez également changer votre test comme vous le suggère iguanevif (sans devoir utiliser une UDF c'est possible) : Code :
|
|||||||
|
|
00
|
|
|
#4 | ||
|
Membre régulier
![]() Inscription : mai 2003 Messages : 119 ![]() |
Merci à vous pour votre solution, ça fonctionne très bien.
Mais si tu veux grouper uniquement par xnumint et que tu fais ta query sans mettre de min et de max sur xdate, il te renvoi le message d'erreur suivant. Erreur: Invalid expression in the select list (not conteined in either an aggregate function or the GROUP BY clause). Code :
|
||
|
|
00
|
|
|
#5 | ||||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Hummm un petit cours de SQL s'impose...
Ou juste un cours de logique (après tout le SQL n'est que de la logique ensembliste). Vous avez un ensemble de données Code :
Donc le résultat sera : C'est ce que fait la requete Code :
Code :
je groupe par xnumint, a chaque xnumint identique je somme les xnhp et que faire des xdates ??? Vu que je ne demande pas la plus petite ni la plus grande des xdate, comment voulez vous que le moteur SQL trouve un résultat ? Comment devrait t'il choissir une date parmis l'ensemble des dates ? Pour xnumint = 1 je somme les xnhp = (10+40+50) et pour le xdate laquel afficher ? il y en a 3 de différentes ??? Bref vous comprenez bien qu'on ne peux pas mettre xdate seul comme ca si on ne regroupe que par xnumint. Donc soit on ne la met pas soit on dit au moteur SQL de prendre la plus petite xdate ou la plus grande xdate trouvé pour un xnumint donné. |
||||||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : mai 2003 Messages : 119 ![]() |
ok, merci pour l'explication Bardibulle, c'est un peut plus clair maintenant.
Pourrais-tu m'aider pour le problème que j'ai à cette endroit. http://www.developpez.net/forums/viewtopic.php?t=255932&highlight= Je me doute que je ne peux sans doute pas te le demander à partir de se sujet, mais se serait bien sympa de ta part. Merci d'avance Jeankiki |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com