需要为我的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,就可以正确地从输出中删除重复的客户名称。
答案 0 :(得分:0)
如果仅按Patient.ID分组,其他列将如何处理? (服务器不知道应该怎么做,因此会引发错误)
服务器不知道您要对其他列执行的操作。 (因此,您需要聚合函数来告知SQL Server)
简单的例子:
ID|salary
01|1000
01|2000
01|3000
如果我仅在此处按ID分组:
select id, salary
from sample
group by id
您如何计算薪水?总和,最大,最小? 因此,您需要聚合函数:
select id, sum(salary)
from sample
group by id
如果有任何疑问,请在下面评论。