sql - SQL 你如何找到丢失的 ID(不按顺序,或无序)?
问题描述
我的表格中有如下图所示的数据。每个 DocID 都有许多与之关联的 ItemID。例如,我正在尝试查找哪些 DocID 的 ItemID 没有“14000”(图片的右下角。)
请问,我怎样才能得到一个没有与之关联的 ItemID 为“14000”的所有 DocID 的列表?
这是我迄今为止尝试过的一个版本。
SELECT
d.DocID
FROM tableD AS d
WHERE d.GID = 19
AND d.TID = 159
AND 1283 NOT IN (SELECT d.ItemID FROM tableD)
GROUP BY d.DocID
这是一个临时表,以防万一。
CREATE TABLE #t1 (
DocID int
,GID int
,TID int
,ItemID int
,Keyword VARCHAR(40)
)
INSERT INTO #t1
VALUES
(321654, 28, 1789, 13841, 'Jim'),
(321654, 28, 1789, 13851, 'Smith'),
(321654, 28, 1789, 13861, 'William'),
(321654, 28, 1789, 13871, '000-00-0000'),
(321654, 28, 1789, 13881, 'SALARY'),
(978312, 28, 1789, 13841, 'Jim'),
(978312, 28, 1789, 13851, 'Smith'),
(978312, 28, 1789, 13861, 'William'),
(978312, 28, 1789, 13871, '000-00-0000'),
(978312, 28, 1789, 13881, 'SALARY')
谢谢您的帮助。
解决方案
使用HAVING
:
SELECT d.DocID
FROM tableD AS d
WHERE d.GID = 19 AND d.TID = 159
GROUP BY d.DocID
HAVING COUNT(CASE WHEN itemid = '14000' THEN 1 END) = 0
推荐阅读
- python - Python中的平滑/噪声过滤数据
- c# - 如何在 C# 的 Linq 查询中使用 partition by 在后续行中添加列值?
- html - 表格 tr 边框宽度 100%
- nock - Nock 固定装置:匹配时忽略请求主体
- amazon-web-services - Cloudformation 复杂参数文件
- python - 带有 Raspberry Pi Zero 的 AlphaBot2 无法正常工作
- python - 无法将字符串转换为 numpy 1d 数组
- amazon-web-services - 在 EC2 实例中运行 puppeteer 的问题
- css - 元素落在边界之外
- python - 使用 for 循环缩放列