salut
J ai 3 champs (dateeffet) de type date dans 3 tables differentes , je veux selectionner le maximum entre ces trois champs et le nom de la table qui contient la plus grande valeur.
comment faire?
merci d'avance
salut
J ai 3 champs (dateeffet) de type date dans 3 tables differentes , je veux selectionner le maximum entre ces trois champs et le nom de la table qui contient la plus grande valeur.
comment faire?
merci d'avance
- ça dépend grandement de ton SGBD
- seul un admin pourra lancer ta requête (utilisation de la méta base)
- ton modèle de donnée doit probablement être à revoir![]()
j utilise Oracle 10g
je suis l administrateur de la base.
merci de m aider a construire cette requete
Pourriez-vous nous présenter une ébauche de la requête que vous tentez de mettre au point ainsi que le structure des tables en jeu.
Cela sera plus facile pour vous aider à la faire évoluer.
Règles du forum Langage SQL à lire par tous
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous,
N'hésitez pas à consulter les cours 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
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
salut,
sous oracle la requette suivante devrais marcher nickel!
) group by nomtable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select nomtable, max(dateeffet) from ( select "table1" nomtable, dateeffet from table1 where XXX union all select "table1", dateeffet from table1 where XXX union all select "table1", dateeffet from table1 where XXX
P.
oops, petit correctif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT nomtable, max(dateeffet) FROM ( SELECT "table1" nomtable, dateeffet FROM table1 WHERE XXX union ALL SELECT "table2", dateeffet FROM table2 WHERE XXX union ALL SELECT "table3", dateeffet FROM table3 WHERE XXX ) group by nomtable
j ai fait :
et le resultat est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT nomtable, max(dateeffet) FROM ( SELECT 'CTMS_MVDIVISION' nomtable, dateeffet FROM CTMS_MVDIVISION WHERE matricule=x union ALL SELECT 'CTMS_MVSERVICES' nomtable, dateeffet FROM CTMS_MVSERVICES WHERE matricule=x union ALL SELECT 'CTMS_MVUNITE' nomtable, dateeffet FROM CTMS_MVUNITE WHERE matricule=x) group by nomtable
NOMTABLE MAX(DATE
CTMS_MVUNITE 01/11/07
CTMS_MVSERVICES 01/10/07
CTMS_MVDIVISION 12/07/06
Mais moi je veux afficher uniquement la premiere ligne
CTMS_MVUNITE 01/11/07
Comment faire?
Partager