ОШИБКА: ORA-00979: не выражение GROUP BY - PullRequest
0 голосов
/ 20 апреля 2020
select frstname,addr  
from medication,patient  
where medication.patientnum=patient.ptnum  
group by frstname,addr  
having finish_date='29-01-20';

как мне решить эту ошибку?

1 Ответ

2 голосов
/ 20 апреля 2020

Очень непонятно, какова цель вашего запроса.

Немедленное решение - переместить условие из условия having в предложение where, поскольку используемый им столбец не является частью предложения group by - и использовать правильный синтаксис соединения и литералы даты:

select frstname, addr  
from medication m
inner join patient p on m.patientnum = p.ptnum  
where finish_date = date '2020-01-29'
group by frstname, addr  

Я бы также настоятельно рекомендовал ставить перед каждым столбцом префикс таблицы, к которой он принадлежит, используя псевдонимы таблиц, которые я добавил к запрос (m для medication, p для patient).

Это может или не может сделать то, что вы на самом деле намеревались. Если нет, то вам, вероятно, следует задать новый вопрос, предоставив образцы данных, ожидаемые результаты и объяснение того, чего вы пытаетесь достичь sh.

...