En simplifiant ça donne quoi :
1 2 3 4 5 6 7 8
| SELECT DISTINCT tab2.chp1, tab1.chp2, tab2.chp3, max(tab1.datetab)
FROM table1 tab1, table2 tab2, table3 tab3
WHERE NVL(tab2.datetab,to_date(tab3.datetab,'dd/mm/rr') ) = to_date(tab3.datetab,'dd/mm/rr')
AND tab3.cle='DATETAB'
AND tab1.code = tab2.chp1 (+)
AND 'Y' = tab2.chp2 (+)
AND 'Y' = tab2.ch3 (+)
GROUP BY tab2.chp1, tab1.chp2, tab2.chp3 |
Le problème vient surement de :
WHERE (select to_date(datetab,'dd/mm/rr') from table3 where cle='DATETAB') = tab2.datetab
S'il n'y a pas de ligne dans tab2, cette condition est fausse
c'est pourquoi j'ai ajouté le NVL:
NVL(tab2.datetab,to_date(tab3.datetab,'dd/mm/rr') ) = to_date(tab3.datetab,'dd/mm/rr')
Le to_date étant surement superflu ou alors il y a un souci dans le modéle de données.
Partager