|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mai 2009 Messages : 22 ![]() |
Bonjour,
Je fais une requête qui doit me renvoyer les dernières valeurs entrées en prévision par un utilisateur. Je m'explique : chaque année, l'utilisateur peut saisir des prévisions. Pour une même année, il peut saisir plusieurs prévisions (identifiées par un champ CodePrevision). Seule la dernière prévision pour une année donnée m'intéresse. Filtrer l'année pour n'obtenir que les prévisions de cette année donnée ne pose pas de souci. Par contre, je veux faire un filtre sur du genre Max(CodePrevision) Pourchaque Utilisateur. Cette formule me permet d'afficher la valeur du CodePrevision qui m'intéresse, mais elle ne me permet pas de filtrer pour enlever les autres prévisions. J'ai déjà eu un problème similaire en voulant poser un filtre sur une date max mais si je veux utiliser cette solution, ça ne marche pas. Je crée un filtre dans mon univers : BE1D.PREVISION.DATECALCUL = (Select max(DATECALCUL) from BE1D.PREVISION X where X.CODEETABLISSEMENT=BE1D.PREVISION.CODEETABLISSEMENT) en m'inspirant de la solution trouvée la dernière fois. L'analyse me dit que c'est correct, mais quand je mets le filtre dans une requête, j'obtiens le message d'erreur suivant : SQL0104N Une marque inattendue "." figure à la suite de "SELECT FROM BE1D". Parmi les marques attendues, on trouve : "FROM". SQLSTATE=42601 Et là, je sèche et je ne sais plus quoi faire... Merci d'avance pour le coup de main. |
|
|
00
|
|
|
#2 | ||||
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Bonjour,
Je te conseille de passer par une table dérivée en utilisant la fonction RANK() En gros, ca donnerait qqch comme ca pour ton exemple : Code :
Ce qui va te donner une table du type : Code :
Il ne reste plus qu'à faire les jointures une fois que tu as cette table. Tu peux filtrer ta table sur Classement = 1 si tu le souhaites pour n'avoir que les dernières prévisions. Bon courage
__________________
|
||||
|
|
00
|
|
|
#3 | |||||
|
Invité régulier
![]() Inscription : mai 2009 Messages : 22 ![]() |
Merci !!
Je ne connaissais pas la fonction RANK() et j'ai pu m'en sortir grâce à ça... Citation:
|
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com