Как присоединиться и Groupby в SQL? - PullRequest
0 голосов
/ 14 июля 2020

Я выполняю следующую команду в Oracle SQL Developer:

SELECT 
  order.adate,
  details.ordid,
  sum(details.price) as total 
FROM details,order 
where details.ordid=order.ordid 
GROUP BY details.ordid;

Но я получаю эту ошибку:

ORA-00979: not a GROUP BY expression
00979. 00000 -  "not a GROUP BY expression"

1 Ответ

2 голосов
/ 14 июля 2020

Ваши столбцы select не соответствуют group by - у вас есть два неагрегированных столбца в select и только один в group by. Предположительно, вы хотите:

select o.adate, d.ordid, sum(d.price) as total 
from details d join
     order o
     on d.ordid = o.ordid 
group by o.adate, d.ordid;

Или, что более вероятно:

select o.adate, sum(d.price) as total 
from details d join
     order o
     on d.ordid = o.ordid 
group by o.adate;

Примечания:

  • Никогда используйте запятые в FROM пункт. Всегда использовать правильный, явный, стандартный , читаемый JOIN синтаксис.
  • Псевдонимы таблиц упрощают запись и чтение запроса.
  • order - очень плохое название для таблицы, потому что это ключевое слово SQL.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...