我有兩個名為 T1 和 T2 的下表
T1有如下資料
DateList
2021-11-06
2021-11-07
2021-11-08
2021-11-09
T2有如下資料
EmpId ApplyDate
1 2021-11-07
1 2021-11-09
2 2021-11-09
現在我需要 t-sql 陳述句,該陳述句將為每個 EmpId 提供 T2 中不存在的日期。輸出應如下所示
DateList EmpId
2021-11-06 1
2021-11-08 1
2021-11-06 2
2021-11-07 2
2021-11-08 2
uj5u.com熱心網友回復:
我們可以使用兩個表之間的交叉連接來生成一個包含所有日期/員工對的參考表。然后,左反加入該表T2以查找所有不存在的對。
SELECT d.DateList, e.EmpId
FROM T1 d
CROSS JOIN (SELECT DISTINCT EmpId FROM T2) e
LEFT JOIN T2
ON T2.DateList = d.DateList AND
T2.EmpId = e.EmpId
WHERE
T2.DateList IS NULL
ORDER BY
d.DateList,
e.EmpId;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/362290.html
標籤:sql-server 查询语句
上一篇:如何對另一列中的列結果進行排序(SQLServer)
下一篇:使用索引的JOIN查詢優化
