tsql - 试图比较同一列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 的客户。任何输入都会有所帮助,谢谢。
解决方案
假设选定的记录在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 的数量是否相同。
推荐阅读
- angular - NullInjectorError:没有 t 的提供者!NullInjectorError: StaticInjectorError(ba)[Cw -> t]:
- r - 如何在 R 中使用循环和并行获得相同的结果?
- java - 浮动操作栏菜单出现在每个片段中
- azure-active-directory - 无法在 Azure AD Web App 上的重定向 URI 中设置 HTTP URI
- gstreamer-1.0 - gst-launch-1.0 - rtspsrc 音频/视频问题
- c - 使用关键参数时 main 之前的分段错误
- javascript - 数组的第一个元素是第一个最小值,第二个元素是第一个最大值,依此类推
- linux - 当二进制文件未使用 -g 编译时,如何获得 perf annotate 以显示源代码?
- javascript - Shopify 显示所选变体库存动态
- python - 如何使用 Python 单击 MS Access 上的按钮