Как исправить «Столбец ColumnName» недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY. » - PullRequest
0 голосов
/ 11 апреля 2019

Необходимость исправить упомянутую ошибку кода для моего запроса SQL

Ошибка: «Столбец ColumnName» недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY ».

У меня сложилось впечатление, что агрегатная функция должна быть реализована, однако я не понимаю, как.

Мой запрос:

SELECT 
TransactionID,
InvoiceSum.TransNum,
PosTransaction.OrderID,
PosTransaction.PatientID, 
Patient.ID,
Patient.MedicalRecordNum,
PosTransaction.OfficeNum AS Pos_OfficeNum,
Patient.ExamOffice,
TransactionDate,
Patient.FirstName,
Patient.LastName,
Patient.BirthDate,
Patient.Sex,
Item.ItemNum,
Item.ItemName
FROM PosTransaction Inner Join Patient ON PosTransaction.PatientID = 
Patient.ID

Inner Join InvoiceSum ON PosTransaction.TransactionID = 
InvoiceSum.TransNum
Inner Join InvoiceDet ON InvoiceSum.InvoiceID = InvoiceDet.InvoiceID
Inner Join Item ON InvoiceDet.ItemID = Item.ID

GROUP BY Patient.ID

ORDER BY TransactionDate

Я ожидаю увидетьповторяющиеся имена клиентов должны быть удалены из вывода, как только я правильно понимаю, как использовать GROUP BY.

1 Ответ

0 голосов
/ 11 апреля 2019

Если вы группируете только по пациенту.ID, что будет с другими столбцами? (Сервер не знает, что ему делать, поэтому выдает ошибку)

Сервер не знает, что вы хотите сделать с другими столбцами. (Так что вам нужны агрегатные функции, чтобы сообщить серверу SQL)

Простой пример:

ID|salary
01|1000
01|2000
01|3000

Если я здесь сгруппируюсь только по идентификатору:

select id, salary
from sample
group by id

Как вы хотите рассчитать зарплату? Сумма, макс, мин? Итак, вам нужна агрегатная функция:

select id, sum(salary)
from sample
group by id

Комментарий ниже, если у вас есть какие-либо вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...