需要修复我的SQL查询的上述代码错误
错误:"列'列名称'在选择列表中无效,因为它未包含在聚合函数或 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。
如果仅按 patient.ID 分组,其他列会发生什么情况?(服务器不知道它应该做什么,所以它引发一个错误(
服务器不知道您要对其他列执行什么操作。(所以你需要聚合函数来告诉SQL服务器(
简单的例子:
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
如果您有任何问题,请在下面发表评论。