SQL SERVER 分组后使用Having Count bug小记

今天碰到一个很有意思的bug,就是分组后过滤使用Having Count,特别记录一下。

事情是这样的,由于我们有个样品子表用来按样品条码存放的表,因为每个任务对应多个样品,每个样品需要打码记录,并且可以分别处理,退库和处理(返厂,报废等),处理的样品有处理编号,我们 在查询同一个任务样品处理只是部分处理,如下SQL 语句

SELECT produce_id, deal_no

FROM dbo.produce_sub

GROUP BY produce_id, deal_no

HAVING (COUNT(*) > 1)

其中有个任务3个样品,但是只处理了1个,这样一个有处理编号,而另两个为空NULL,

本意是获取两条记录,分组没问题,但是加上HAVING Count(*) 只显示一条,这就违背意愿,

后猜测deal_no 为NULL的原因,后改

SELECT produce_id, ISNULL(deal_no, '-') AS deal_no

FROM dbo.produce_sub

GROUP BY produce_id, deal_no

HAVING (COUNT(*) > 1)

这样就没问题了

记录一下,挺有意思的小bug,便于以后回查。

相关推荐
shangjg34 分钟前
Redis 中的 5 种数据类型和示例场景
数据库·redis·缓存
惜.己13 分钟前
MySql(十三)
数据库·mysql
熙客18 分钟前
Linux上安装MongoDB
数据库·mongodb
uyeonashi1 小时前
【从零开始学习QT】信号和槽
数据库·c++·qt·学习
卡布奇诺-海晨2 小时前
Redis分布式锁深度解析与最佳实践
数据库·redis·分布式
Watink Cpper5 小时前
[Redis] Redis:高性能内存数据库与分布式架构设计
linux·数据库·redis·分布式·架构
惜.己9 小时前
MySql(十)
数据库·mysql
瓯雅爱分享10 小时前
MES管理系统:Java+Vue,含源码与文档,实现生产过程实时监控、调度与优化,提升制造企业效能
java·mysql·vue·软件工程·源代码管理
lichenyang45311 小时前
使用react进行用户管理系统
数据库
木子.李34712 小时前
数据结构-算法学习C++(入门)
数据库·c++·学习·算法