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