Bonjour a tous,
Je cherche a faire une requête qui comporte plein de petit problème et au final elle ne marche pas. Voici la structure de ma table
Table1
Nom1
Date
Caractéristique1
Caractéristique2
Table2
Nom1 (clé étrangère de table 1)
Nom 2
Table3
Nom1 (clé étrangère de table 1)
Date (différente de la date de table1)
Statut1
Statut2
Voila pour ce qui est de la structure.
pour ce qui est dedans : la table3 contient énormément de champs(beaucoup plus que la table1) et la Table1 contient des caractéristiques relevé au momment date (de table1 bien sur)
ce que je voudrais afficher :
--Nom1--Nom2--Date--Caractéristique1--Caractéristique2--Statut1--Statut2
la date est celle de la table1
Pour le statut je l'obtient en prenant le dernier statut rentré avant la date de la table1 (en gros la date Maximum parmi toute les date inferieur a date de table 1)
J'arrive a faire cela pour une date et un nom fixe grâce a une sous requête:
Mais je n'arrive pas à insérer cette requête dans ma requête prééxistante (car j'ai déjà une requète qui existe pour obtenir la même chose sans les statuts) pour obtenir ce que je veux et faire le lien avec la table1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select T3.STATUT1, T2.STATUT2 from TABLE3 T3 join TABLE2 T2 on T2.STATUS=T3.STATUT where T3.STATUT_DATE<to_date('010820101110','MM/DDYYYY HH24:MI') and NOM1='nom1' and STATE_DATE=(select max(table3.STATE_DATE) from TABLE3 tab where table3.NOM3='nom1' and table3.DATE<to_date('010820101110','MM/DDYYYY HH24:MI'));
Pour info, j'ai testé avec cette requête :
Mais la requête tourne vraiment très longtemps sans rien renvoyé (en tout cas je l'arrète avant)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 select T1.NOM1,T2.NOM2 T3.STATUT1 from Table1 T1 join TABLE2 T2 on T2.NOM1=T1.Nom1 join TABLE3 T3 on T3.NOM1=T1.NOM1 where T3.DATE=(select max(table3.DATE) from TABLE3 T4 where table4.STATE_DATE<T1.DATE) ;
Pourriez vous m'aidez si vous comprenez ce que j'aimerais obtenir.
Merci d'avance pour votre aide
Partager