0
我有這個查詢可以工作並返回正確的重複數據。Tsql查詢需要查找重複項和連接表以確定要刪除哪些項
select [serverName], ActiveYN, count(servername)
from dbo.FarmStats_Server
group by [serverName], ActiveYN
having (count(servername) > 1)
返回260行。
我需要做的是更復雜一點。
SELECT
dbo.FarmStats_Farm.FarmName,
dbo.FarmStats_Server.ServerName,
dbo.FarmStats_Server.obsDT, dbo.FarmStats_Server.ActiveYN
FROM
dbo.FarmStats_Farm
INNER JOIN
dbo.FarmStats_Server ON dbo.FarmStats_Farm.FarmID = dbo.FarmStats_Server.FarmIDFK
GROUP BY
dbo.FarmStats_Farm.FarmName, dbo.FarmStats_Server.ServerName, dbo.FarmStats_Server.obsDT, dbo.FarmStats_Server.ActiveYN
HAVING
(COUNT(dbo.FarmStats_Server.ServerName) > 1)
此查詢返回任何結果。我從根本上失去了一些東西。
最終目標是刪除其中一個副本。
感謝您的幫助。
當您運行且不包括羣組由部分查詢返回什麼?如果你得到了結果,你可以看看是否有重複。您的INNER JOIN可能會過濾出您不希望的數據。 –
@Jay你想只刪除一個副本還是隻保留一條記錄?所以如果你有3個記錄具有相同的[serverName]和[ActiveYN],你想要兩個還是隻剩下一個? –
埃裏克你是對的。這裏的目標是根據年齡刪除重複的記錄。最新的將被設置爲激活,其餘的將需要從表格中移除。 – Jay