SQL: как включить неагрегат в агрегатный оператор Select - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть запрос ниже Teradata:

create volatile table Sales_Record as (select max(a2.MDL_DESC),max(a3.DMD_DESC) FROM 
MDL_DD_DESC a2, DMD_DD_DESC a3);

При попытке выполнить запрос со следующим:

create volatile table Sales_Record as (select a1.SAL_DT SAL_DT,max(a2.MDL_DESC),max(a3.DMD_DESC) FROM SAL_DD_DT a1,
MDL_DD_DESC a2, DMD_DD_DESC a3);

получаю ошибку:

Selected non-aggregate values must be part of the associated group.

Как добавить a1.SAL_DT SAL_DT к запросу агрегатных функций?

1 Ответ

0 голосов
/ 18 сентября 2018

Вам нужно GROUP BY предложение :

select a1.SAL_DT SAL_DT,max(a2.MDL_DESC),max(a3.DMD_DESC) 
FROM SAL_DD_DT a1, MDL_DD_DESC a2, DMD_DD_DESC a3 
GROUP BY a1.SAL_DT

И вы уверены, что именно так вы хотите присоединиться к этим таблицам?Похоже, вы получаете продукт каждой возможной комбинации между ними, и ничто не связывает столы друг с другом, а это редко то, что кто-то хочет.

...