[英]SQL Server select duplicated rows
我是SQL Server的新手,我想選擇所有至少一次更換部門的人員。
表結構為:
我有以下代碼來生成中間表
select distinct
DepartmentID, NationalIDNumber
from
Table
where
NationalIDNumber in (select NationalIDNumber
from Ben_VEmployee
group by NationalIDNumber
having count(NationalIDNumber) > 1)
輸出:
DepartmentID NationalIDNumber
-----------------------------
1 112457891
2 112457891
4 24756624
4 895209680
5 24756624
5 895209680
7 259388196
我的問題是:如何刪除上述中間表中的非重復記錄?
因此,應刪除記錄“ 7-259388196”,因為他沒有更改部門。
謝謝。
嘗試使用group by
並比較最大和最小部門。 如果更改,則這些將有所不同:
select NationalIDNumber
from Ben_VEmployee
group by NationalIDNumber
having min(DepartmentID) <> max(DepartmentID);
如果需要實際部門,可以將其重新加入原始數據。
如果要列出一個以上部門中的每個ID號的列表,可以使用
SELECT COUNT(DepartmentID) AS noDepartments
, NationalIDNumber
FROM Table
GROUP BY NationalIDNumber
HAVING COUNT(DepartmentID) > 1
如果您想刪除該員工曾經所在的部門的記錄,但現在僅此而已,那么您將必須知道哪個部門知道要刪除哪個記錄! 如果您知道這一點,請說出來,我們可以解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.