Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1814 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  le max du max du max : requête un peu dur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

le max du max du max : requête un peu dur

n°1315471
vuldos
Posté le 28-02-2006 à 16:46:11  profilanswer
 

salut TLMD,
Je bloque sur une requête ou l'on me demande de piocher dans une table pour y séléctionner pour chaque contrat la dernière date d'arret (max) et à l'intèrieur de cette même date d'arret prendre la dernière date de début (max) et le tout en prenant tout les champs de la ligne (une douzaine).
Merci d'avance  
 
Voilà j'ai le jeu de données suivant:
 
------------------------------------------------------------------------
N° contrat  |      date_arret     |     debut      | date paiment|
------------------------------------------------------------------------
1                       01/01/01         10/01/2005    15/01/2005
1                       01/01/01         18/01/2005    22/01/2005
2                       04/02/01         10/02/2005    15/02/2005
2                       01/01/01         10/01/2005    15/01/2005
 
le résultat attendu:
------------------------------------------------------------------------
N° contrat  |      date_arret     |     debut      | date paiment|
------------------------------------------------------------------------
1                       01/01/01         18/01/2005    22/01/2005
2                       04/02/01         10/02/2005    15/02/2005


---------------
Le coeur des purs est le tombeau des confidences
mood
Publicité
Posté le 28-02-2006 à 16:46:11  profilanswer
 

n°1315504
fluminis
Posté le 28-02-2006 à 17:19:48  profilanswer
 

Quel sgbd utilises-tu ?


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1315534
anapajari
s/travail/glanding on hfr/gs;
Posté le 28-02-2006 à 17:54:10  profilanswer
 

à l'intuition je ferais un truc comme ça ( j'ai appelé ta table test):

Code :
  1. SELECT
  2. RES.*
  3. FROM
  4. test RES
  5. WHERE
  6. RES.date_arret = ( SELECT max(ARRET.date_arret) FROM test ARRET WHERE ARRET.no_contrat = RES.no_contrat)
  7. AND
  8. RES.debut = ( SELECT max(DEBUT.debut) FROM test DEBUT WHERE DEBUT.no_contrat = RES.no_contrat AND DEBUT.date_arret = RES.date_arret)


Les problèmes:
- je garantis pas que ça marche sur tous les SGBD ( mysql oui)
- c'est pas top niveau optimasation de la requête... surtout si ta table est grosse
- si tu as deux numéro de contrat ayant la même date_arret et le même début ( valant tous les deux le max possible), cela te remontera les 2 enregistrements
-

n°1315563
vuldos
Posté le 28-02-2006 à 18:29:15  profilanswer
 

Tout d'abord merci les gars
Le SGBD c'est oracle.
anapajari , le deuxième problème est un cas épineux (faut chercher celle qui  la date de paiment max)


---------------
Le coeur des purs est le tombeau des confidences
n°1315855
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-03-2006 à 09:25:08  profilanswer
 

bin tu rajoutes alors encore une where

Code :
  1. AND
  2. RES.date_paiement = ( SELECT max(PAIE.date_paiement) FROM test PAIE WHERE PAIE.no_contrat = RES.no_contrat AND PAIE.date_arret = RES.date_arret AND PAIE.debut = RES.debut)


 
Mais la ça devient super miteux comme requete ;)
Je connais pas assez Oracle mais il doit y avoir des fonctions qui doivent t'aider a faire ça.
 
Si ça existe vraiment pas, perso je ferais des vues et je les jointerais ensemble.

n°1315970
vuldos
Posté le 01-03-2006 à 11:23:48  profilanswer
 

Salut
J'ai trouvé la réponse merci de m'avoir mis sur la voie, en fait j'ai utilisé les requetes imbriquées (4 requêtes) .
@+


---------------
Le coeur des purs est le tombeau des confidences

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  le max du max du max : requête un peu dur

 

Sujets relatifs
XSLT, NameSpace et Requete XPath ca marche pasAide sur une requete
Problème de requete[Oracle XML] Requete simple, 1 ligne de résultat = plusieurs résultats
Requete http via un document excelrequete dans excel
[Résolu] Requête SQL - doublons oui mais ..[access] travail propre ? jointure requête
requete CONTAINSrequête SQL dans un formulaire
Plus de sujets relatifs à : le max du max du max : requête un peu dur


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)