|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
Étudiant Inscription : avril 2011 Messages : 21 ![]() |
Le titre est pas parlant, pas facile d'expliquer mon problème en quelques mots...
J'ai une table historique qui contient les informations de plusieurs "rampes" à de dates différentes... une rampe appartient à un "jeu" De ce fait, une rampe (identifiée par un id) passe plusieurs fois dans l'historique... Je voudrais sélectionner pour une rampe, son historique le plus récent... Exemple : la rampe 1 passe dans l'historique le 04/05 la rampe 2 passe dans l'historique le 05/05 Code :
Dans l'exemple, si je veux sélectionner la rampe 2, la requête fonctionne, si je veux sélectionner la rampe 1, mon select est vide puisque la dernière date est le 5 et non le 4... J'ai donc essayer ca : Code :
sans le distinct j'ai des "doublons" (je vois plusieurs fois la même rampe à des date différentes...) Si vous avez une solution je suis preneur Cordialement, 0sef |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
Bonjour,
Voici une méthode qui marche, parmis plusieurs: Code :
Tatayo. |
||
|
|
00
|
|
|
#3 |
Étudiant Inscription : avril 2011 Messages : 21 ![]() |
Oua merci de la rapidité de la réponse mais... ca fonctionne pas :p
(sans compter le fais que j'ai absolument pas compris ta requête xD) message que j'obtiens : "erreur de syntaxe (opérateur absent) dans l'expression 'Jeu.idJeu = Historique.idJeu_Jeu LEFT OUTER JOIN Historique h2 ON Jeu.idJeu = H2.idJeu_Jeu'. |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
et avec une combinaison HAVING MAX, cela ne fonctionnerait pas ?
Genre Code :
bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
bonjour
que donne ceci ? Code SQL :
|
||
|
|
00
|
|
|
#6 | |||
Étudiant Inscription : avril 2011 Messages : 21 ![]() |
j'essaye ca demain et je vous tiens au courant
sauf que pour ce code : Citation:
ca : J.idJeu, H.IdRampe_Rampe, doivent être les abréviations de Jeu.idJeu et Historique.IdRampe_Rampe mais le "from jeu j" ? |
|||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
C'est pour aliasser la table.
Cela évite de taper le nom complet à chaque fois. |
|
|
00
|
|
|
#8 | ||
Étudiant Inscription : avril 2011 Messages : 21 ![]() |
tadaa... ^^
Resultat de : Code :
Comprend pas xD |
||
|
|
00
|
|
|
#9 | ||
![]() ![]() |
Je ne sais pas si le principe de la requête est juste mais en la remettant en forme je constate qu'il manque l'alias de la table Historique dans l'instance après le INNER JOIN.
Ça donnerait ceci : 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 ! |
||
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Vous n'avez pas donné la structure de vos tables, donc on extrapole pour le nom des colonnes...
La colonne idJeu de la table historique change de nom au cours de la requête(idJeu, idJeu_jeu,...). Remettez l'alias de la pseudo table comme vous l'a dit CinePhil, et vérifiez le nom des colonnes |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Salut !
Quel est ton SGBD ? (S'il fait de la fonction analytique, ça va être tout simple et élégant...)
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
|
00
|
|
|
#12 | |||
Étudiant Inscription : avril 2011 Messages : 21 ![]() |
Merci à tous... j'ai "contourné le problème" pour l'instant comme ceci :
Code :
j'ai aussi remarqué que je n'avais pas besoin de lier la table historique à la table jeu xD Citation:
idJeu_Jeu est la clé étrangère de la table historique qui référence jeu.idjeu... oui je ne fais qu'exploiter des tables existantes... pour le SGBD je suis sous Access 2002 -.- Encore merci et je repasserai si j'ai d'autres questions |
|||
|
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Si !
Citation:
Citation:
|
||
|
|
00
|
|
|
#14 | |||
Étudiant Inscription : avril 2011 Messages : 21 ![]() |
Citation:
Bref enfaite je viens de m'apercevoir que j'allais devoir faire cette requête tout de même^^ pour être plus claire : dans ma table : Historique j'ai les colonnes : - idHistorique - idRampe_Rampe - idJeu_Jeu - Statut - TSN - TSO - Resultat - Date et dans mon historique j'ai 1 rampe "rampe1" en statut "WIP" en 2012 une rampe "rampe2" en statut "WIP" en 2012 ET en 2014 je voudrais lister "idJeu_Jeu, idRampe_Rampe, Resultat, Statut, et Date" pour chaque rampe qui est en statut "WIP" avec un resultat "ok" mais à la date la plus récente de la rampe (en gros avoir les infos de la rampe2 de 2014 et les info de la rampe1 de 2012 mais pas les infos de la rampe2 de 2012^^) C'est claire? (parce que je m'embrouille à force) Code :
|
|||
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Attention, vous avez une colonne nommée "date", qui est aussi un mot reservé au langage SQL, vous pouvez avoir des soucis.
Avez regardé avec le genre de requete que je vous avais fourni le 16/05 ? Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
tout à fait. Mais n'ayant pas la structure des tables, je l'avais écrite tel quel, en supposant que tu allais prendre la peine de ne pas faire simplement un copier/coller, mais au moins vérifier que les noms des tables et des colonnes étaient corrects...
|
|
|
10
|
|
|
#17 |
Étudiant Inscription : avril 2011 Messages : 21 ![]() |
@aieeeuuuuu
J'ai posté le copier coller avec l'erreur pour que tu puisses éventuellement corriger ta requête si tu en avais envie... j'ai essayé plusieurs modifications sans grand résultat du fait que je ne comprenais pas tout... (j. , h. j.jeu... j'ai fini par tout confondre^^). Bref ne crois pas que je vienne demander une solution "toute faite et parfaite" je cherche je cherche^^ @ Yanika_bzh Je ne peux pas exécuter la requête si "historique.date ne figure pas dans le group by en plus du having..." Cette requête me donne les résultats récent et anciens... |
|
|
01
|
Copyright © 2000-2012 - www.developpez.com