需要选择重复记录

时间:2016-12-27 10:25:38

标签: sql sql-server

我只需要从表格中选择重复的记录。查询已成功执行,但没有数据。

我的代码:

SELECT PRACOWNK.X_I, Imie,Nazwisko, HISTORIA.X_I, HISTORIA.NrKartyRCP 
FROM R2P_psou_dane_1.dbo.PRACOWNK 
JOIN R2P_psou_dane_1.dbo.HISTORIA on PRACOWNK.X_I=HISTORIA.X_IPracownik
WHERE AktZatrudnienie = 1 
GROUP BY PRACOWNK.X_I,Nazwisko,Imie,HISTORIA.X_I, HISTORIA.NrKartyRCP
HAVING COUNT(PRACOWNK.X_I) > 1;

你能帮忙吗?

3 个答案:

答案 0 :(得分:1)

SQL Server以来,您可以使用ROW_NUMBER()功能

SELECT * FROM (
SELECT PRACOWNK.X_I, Imie,Nazwisko, HISTORIA.X_I, HISTORIA.NrKartyRCP,
ROW_NUMBER() OVER(PARTITION BY PRACOWNK.X_I ORDER BY PRACOWNK.X_I) AS rn 
FROM R2P_psou_dane_1.dbo.PRACOWNK 
JOIN R2P_psou_dane_1.dbo.HISTORIA on PRACOWNK.X_I=HISTORIA.X_IPracownik
WHERE AktZatrudnienie = 1 ) xxx
WHERE rn = 1;

答案 1 :(得分:0)

如果您想根据PRACOWNK.X_I的数量获取记录,请从select和Group by中删除此列。

SELECT  Imie,Nazwisko, HISTORIA.X_I, HISTORIA.NrKartyRCP 
FROM R2P_psou_dane_1.dbo.PRACOWNK 
JOIN R2P_psou_dane_1.dbo.HISTORIA on PRACOWNK.X_I=HISTORIA.X_IPracownik
WHERE AktZatrudnienie = 1 
GROUP BY  Nazwisko,Imie,HISTORIA.X_I, HISTORIA.NrKartyRCP
HAVING COUNT(PRACOWNK.X_I) > 1;

答案 2 :(得分:0)

获取所有数据并放入临时表。

SELECT PRACOWNK.X_I, Imie,Nazwisko, HISTORIA.X_I, HISTORIA.NrKartyRCP
INTO #temp
FROM R2P_psou_dane_1.dbo.PRACOWNK 
JOIN R2P_psou_dane_1.dbo.HISTORIA on PRACOWNK.X_I=HISTORIA.X_IPracownik
WHERE AktZatrudnienie = 1 

然后检查有条件

SELECT * FROM #temp
group by  PRACOWNK.X_I, Imie,Nazwisko, HISTORIA.X_I, HISTORIA.NrKartyRCP
HAVING COUNT(PRACOWNK.X_I) > 1;