Je ne sais pas ce qui se passe ici et pourquoi cela ne fonctionne pas. Je reçois l'erreur suivante:
"Toutes les expressions d'une table dérivée doivent avoir un nom explicite" - travailler avec Teradata. P>
select clm.c_clm
,clm.c_loc
from
(select *
from pearl_p.TLTC900_CLM clm) as cl
left join
(select
max(av.d_usr_udt_lst)
from pearl_p.TLTC913_AVY av
group by 1) as avy
on cl.i_sys_clm = avy.i_sys_clm
3 Réponses :
Votre max (av.d_usr_udt_lst) dans votre sous-requête n'a pas de nom explicite. Vous devez l'alias comme ceci comme ceci: de sorte que la requête ressemble à p>
L'alias CLM code> n'existe que dans la sous-requête qui définit le cl code> alias. En tant que tel, vous ne pouvez pas appeler CLM code> en dehors de cette sous-requête. Changez toutes les références extérieures à CL CODE> ADN, tout ira bien.
Alors que vous devez également vous débarrasser de la SELECT * CODE> et d'identifier explicitement les colums dont vous avez besoin. P>
En dehors de cette erreur, vous avez une autre erreur dans votre join:
select clm.c_clm, clm.c_loc
from (select *
from pearl_p.TLTC900_CLM clm
) cl left join
(select i_sys_clm, max(av.d_usr_udt_lst) as maxdate
from pearl_p.TLTC913_AVY av
group by i_sys_clm
) avy
on cl.i_sys_clm = avy.i_sys_clm and
cl.<date column goes here> = avy.maxdate