我有兩個表:檢查所有ID的列中的具有在另一列中的特定值時,不同的表
表1:
Id
1232
1344
1313
4242
3242
555
表2:
Id sym mnth code
1232 9 1 32
1344 15 1 14
1313 10 1 32
4242 11 1 32
3242 9 1 32
1232 9 2 32
1344 13 2 14
1313 9 2 32
4242 10 2 32
3242 9 2 32
我想要檢查表1中的所有id是否在所有月份的sym中都有值9(示例中爲1,2),但僅針對表2中的代碼爲'32'的那些id。
如果沒有將我的身份證號碼和缺少9的月份以逗號分隔。如果表1中的Id在表2中完全不存在,則在月份列和id中返回null。
例子中的輸出應該是:
ID month
1313 1
4242 1,2
555 NULL
1344 doesn't exist because the code column for hime is not 32.
我開始寫這篇:
SELECT table1.id
FROM table1
WHERE not EXISTS (SELECT id FROM table2
WHERE table2.sml = '9' AND table2.code = 32)
但我真的不知道如何使查詢運行的所有月份和堵塞結果就像我在輸出中提到的那樣。任何幫助?
謝謝!
添加table1.id = table2.id的子查詢的WHERE子句? – jarlh
對不起,不明白。 – Jordan1200
想象一下你可能需要一個'OUTER APPLY',並且對於你之後的'month'的輸出,你還需要一個自定義的聚合函數。 –