[FONCTION ANALYTIQUE] - WHERE et ORA-30483
Bonjour a tous !!
quand j'essai d'inserer une fonction analytique dans une clause 'where' j'ai l'erreur suivante :
Code:
1 2
|
ORA-30483: window functions are not allowed here |
existe t il un moyen de faire une requete du style :
(mais sans l'erreur 30483)
Code:
select F1, F2, (select C1,C2 from T2 where C0=lead(F1) over partition by F0 order by F3) from T1
Merci d'avance.
[FONCTION ANALYTIQUE] - WHERE et ORA-30483
voila un extrai de la requete...
Code:
1 2 3 4 5 6 7 8 9 10
| select ID_PATIENT, dt_trans,
TR_AGENT1 IDA_AGT_A1,
TR_AGENT2 IDA_AGT_A2,
LEAD(TR_AGENT1) OVER (partition by no_branc ORDER BY DT_TRANS) IDR_AGT_A1,
LEAD(TR_AGENT2) OVER (partition by no_branc ORDER BY DT_TRANS) IDR_AGT_A2,
(select NM_AGT || ' ' || PR_AGT from agents where NO_AGT=IDA_AGT_A1) AGT_A1,
(select NM_AGT || ' ' || PR_AGT from agents where NO_AGT=IDA_AGT_A2) AGT_A2,
(select NM_AGT || ' ' || PR_AGT from agents where NO_AGT=IDR_AGT_A1) AGT_R1,
(select NM_AGT || ' ' || PR_AGT from agents where NO_AGT=IDR_AGT_A2) AGT_R2, ----------------------------------------------------------------------------------------
from brancard order by no_branc |
voila le probleme :
la requete ci dessus ne fonctionne pas...
en effet IDA_AGT_A1/A2 et IDR_AGT_A1/2 ne sont pas des colonne mais des alias...
pour les IDA_xxx pas de probleme je peut utiliser le nom du champs d'origine mais pour les IDR_xxx j'utilise la fonction LEAD() ; sachant qu'un LEAD() est interdit deriere un where... COMMENT FAIRE.
merci de votre aide...