sql-server - T-SQL 中的重复条目
问题描述
我这里有一个严重的问题。我从我的查询中得到了这个结果。
请点击此链接获取屏幕截图 - 我还无法上传图片: https ://i.stack.imgur.com/MgLJR.png
我尝试使用此处显示的代码来删除重复条目,但出现错误
列 'clients.client_name' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中
我的代码:
ALTER PROCEDURE dbo.spGetBcByBcNumber
@BcNumber INT
AS
BEGIN
SELECT
client_name, articles.article_id, article_name,
article_price, entry_number,
entry_number * article_price AS montant,
@BcNumber AS bc_number
FROM
articles
JOIN
entries ON articles.article_id = entries.article_id
JOIN
commandes ON commandes.bc_number = entries.bc_number
JOIN
clients ON clients.client_id = commandes.client_id
WHERE
commandes.bc_number = @BcNumber
GROUP BY
articles.article_id
END
有人有解决方案吗?
解决方案
您应该将要删除重复项的所有列添加到GROUP BY
.
试试这个(记住代码的格式,这样可以提高可读性。):
ALTER PROCEDURE dbo.spGetBcByBcNumber
@BcNumber INT
AS
BEGIN
SELECT client_name
, articles.article_id
, article_name
, article_price
, entry_number
, entry_number*article_price AS montant
, @BcNumber AS bc_number
FROM articles
JOIN entries on articles.article_id = entries.article_id
JOIN commandes ON commandes.bc_number=entries.bc_number
JOIN clients ON clients.client_id=commandes.client_id
WHERE commandes.bc_number = @BcNumber
GROUP BY client_name
, articles.article_id
, article_name
, article_price
, entry_number
END
请注意,计算的列 ( montant
) 和bc_number
column 不在 中,因为您已经按andGROUP BY
分组。article_price
entry_number
推荐阅读
- node.js - 为什么当我将文件对象从前端发送到后端时它发生了变化?
- reactjs - npm 错误!安装 react-spring 动画时 ERESOLVE 无法解析依赖树
- mysql - 如何理解 mysql 中的字符集介绍器?
- python - Python中的整数日期:timedelta天组件不支持的类型:系列
- perl - 处理所有文件而不退出
- amazon-web-services - 使用 AWS 服务 SQS、SES、Lambda 开发、测试和部署无服务器应用程序的最佳方式是什么
- javascript - 如何使用 onEdit 触发器事件创建基于时间的触发器?
- algorithm - 递归算法的递归表示时间复杂度
- javascript - 如何将对象的 javascript 数组从一种格式转换为另一种格式?
- react-native - React native - 如何在滚动时在 Top View 上实现此动画