首页 > 解决方案 > 试图比较同一列t-sql中的项目

问题描述

我正在尝试根据客户查找查找的计数

LookUpID     Customer
1302                 01             
1303                 01
1337                 01

每个客户可以有多个查找 ID,但如果他们选择了 1337 而不是 1302 或 1303,则您无法将该客户添加到计数中。

计数(当 LookUpID=1337 且 LookUpID 不在 (1302,1303) 中的情况,然后当 LookUpID = 1337 和 LookUpID 在 (1302,1303) 时为 0,然后 1 否则 0 结束)

如果未选择其他 2 个,我无法找到如何排除 LookUpID = 1337 的客户。任何输入都会有所帮助,谢谢。

标签: tsql

解决方案


假设选定的记录在SelectedRecords表中,我们可以这样做:

SELECT lt.Customer
FROM LookupTable lt
LEFT JOIN SelectedRecords sr ON sr.LookUpID=lt.LookUpID
GROUP BY lt.Customer
HAVING COUNT(*)=COUNT(DISTINCT sr.LookUpID)

这样,我们计算每个客户的 LookUpID-s 的数量并检查选定的 LookUpID-s 的数量是否相同。


推荐阅读