je les tableaux ci-dessousOracle Optimisation des requêtes
Maître Tableau
id
----
1x
2x
....
Affectation Tableau
id | type_id | assign_id
-----------------------------
1x | 2 | 554
1x | 3 | 664
2x | 2 | 919
2x | 4 | 514
table type
type_id | create_date
----------------------
1 | 01/01/2009
2 | 01/01/2009
3 | 03/01/2009
4 | 04/01/2009
Ce que je dois pour la requête de sortie est quelque chose comme ça
id | max create_date type_id | assign_id
----------------------------------------------
1x | 3 | 664
2x | 4 | 514
En ce moment je fais quelque chose comme ça pour acquérir les résultats, mais je suis sûr qu'il ya une bien meilleure façon de le faire .
Q1
---
CREATE TABLE tmp_table as
SELECT m.id, max(t.create_date)
FROM master m, assignment a, type t
WHERE m.id=a.id
and a.type_id=t.type_id
GROUP BY m.id
Q2
--
SELECT tmp.id, a.type_id, a.assign_id
from tmp_table tmp, assignment a, type t
WHERE tmp.create_date=t.create_date
and t.type_id=a.type_id
Merci pour toute aide
Merci jeffery. Je n'ai jamais entendu parler des commandes first_value et over. – AlteredConcept
Rechercher "fonctions analytiques Oracle" - ils sont très puissants :) lecture recommandée: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions001.htm#i81407 –
corrigé, après lire la réponse de Vincent. –