sql - 如何修复“列 'ColumnName' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。”
问题描述
需要为我的 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,我希望看到重复的客户名称从输出中删除。
解决方案
如果只按 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
如果您有任何问题,请在下方评论。
推荐阅读
- node.js - 返回html时获取双引号
- codeigniter - 添加 database.sql /docker-entrypoint-initdb.d/database.sql
- apache-kafka - 如何实现幂等KafkaProducer的回退?
- git - 在重构期间拆分文件时跟踪文件与 git 一起移动
- python - 如何在“matplotlib”中只找到波中的大峰
- gdb - 为什么设置断点并运行失败(第 2 章 shellcoder 手册)
- c# - 允许您更改 MS Teams 的默认帐户的脚本
- c# - 运行多个存储过程的最佳方法是什么?
- javascript - 如何将多个返回的 SQL 行组合成一个字符串
- sql-server - SQL:如何将行转换为列(需要另一种方法)