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)
このクエリは結果を返しません。基本的に何かが欠けている。
最後の目標は、重複の1つを削除することです。
ありがとうございました。
クエリを実行したときのセクションによってグループなしで返されますでしょうか?結果が得られれば、その中に重複があるかどうか確認できます。あなたのINNER JOINがあなたが期待していないデータを除外しているかもしれません。 –
@Jay 1つの複製を削除するか、1つのレコードのみを保持しますか?したがって、同じ[serverName]と[ActiveYN]の3つのレコードがある場合は、2つを残すか1つだけにしますか? –
Ericあなたは正しいです。ここでの目標は、年齢に基づいて重複レコードを削除することです。最新のものがアクティブに設定され、残りはテーブルから削除する必要があります。 – Jay