說我有一個表,如下所示SQL服務器查找重複
Employee RecNumber
Joe Bloggs 123456
Joe Bloggs 123456
Bob Bloggs 123457
Dup Bloggs 123456
而我只是想回到所有錄製的數字,其中2人有過這不應該發生在同一RecNumber。 注意,一個人可以有相同的請求數量的多次我只是想回來,在那裏2人有相同的REC數
因此,所有我想要返回的
123456
說我有一個表,如下所示SQL服務器查找重複
Employee RecNumber
Joe Bloggs 123456
Joe Bloggs 123456
Bob Bloggs 123457
Dup Bloggs 123456
而我只是想回到所有錄製的數字,其中2人有過這不應該發生在同一RecNumber。 注意,一個人可以有相同的請求數量的多次我只是想回來,在那裏2人有相同的REC數
因此,所有我想要返回的
123456
select record_number
from my_table
group by record_number
having count(distinct employee) > 1
有趣的是,我懷疑樣本數據並不能真正讓我們區分他的意思和他的單詞問題。 – 2012-03-07 18:17:43
SELECT A.RECNUMBER,COUNT(B.EMPLOYEE)
(SELECT DISTINCT RECNUMBER FROM YOURTABLE) A,
YOURTABLE B
WHERE A.RECNUMBER = B.RECNUMBER
GROUP BY A.RECNUMBER
HAVING COUNT(B.EMPLOYEE)=2;
爲什麼= 2?如果他們有3或4或5或更多? – 2012-03-07 18:17:05
Steve只問了兩個人的問題。 – Teja 2012-03-07 18:19:14
對,但你認爲他的桌子只有4排嗎?他只在他的樣本數據中顯示了兩場比賽,但我認爲我們可以推斷。 – 2012-03-07 18:21:38
像這樣的事情?
SELECT RecNumber FROM Table GROUP BY RecNumber HAVING COUNT(*) > 1
SELECT RecNumber FROM [a table]
GROUP BY RecNumber HAVING COUNT(*) > 1;
或許
SELECT RecNumber FROM (SELECT RecNumber, Employee
FROM [a table]
GROUP BY RecNumber, Employee HAVING COUNT(*) > 1
) AS x;
這將只是返回所有重複recNumber即時看起來如果2名員工具有相同的 – StevieB 2012-03-07 18:17:52
這就是爲什麼我要求澄清,因爲您的示例數據是模糊不清。我還添加了替代解釋。 – 2012-03-07 18:22:07
你可以寫這樣的事情,我認爲它的工作:
use *DATABASE_NAME*
go
select *Your_Field*, Nbre=count(*Your_Field*) from *TABLE_NAME*
group by *Your_Field*
having count(*Your_Field*)>1
order by 2 desc
享受
你能clarif你好嗎?添加另一行'Bob Bloggs','123457' - 你不想讓這個返回正確,因爲它是同一個人(呃,一個同名的人,希望你沒有兩個叫Bob Bob的人,但是在一般來說,這是一種讓人分開的可怕方式,因爲有些名字很常見)。 – 2012-03-07 18:18:36
您是否也可以指定是否需要2個或更多人使用相同的RecNumber,因爲有些人認爲這意味着您只關心2個。 –
2012-03-07 18:27:04