08/10/04 12:18:15 xNZqDkS6
2005ですが、主キーがあるとは限らない2つのテーブル(或いはクエリ)の
データが完全に一致するか調べたいんだが、どうやるのが簡単?
とりあえず思いつくあたりだと、
①各々ソートしてカーソルで一件づつ回して比較。
②全項目でグループ化して、グループ毎のカウントで比較。
DECLARE @A_COUNT AS INT SELECT @A_COUNT = COUNT(*) FROM A
DECLARE @B_COUNT AS INT SELECT @B_COUNT = COUNT(*) FROM B
IF @A_COUNT != @B_COUNT RETURN 不一致
DECLARE @WK_COUNT AS INT
SELECT
@WK_COUNT = SUM(件数)
FROM
(
SELECT 項目1,項目2,項目3,COUNT(*) AS 件数
FROM A
GROUP BY 項目1,項目2,項目3
INTERSECT ALL
SELECT 項目1,項目2,項目3,COUNT(*) AS 件数
FROM B
GROUP BY 項目1,項目2,項目3
) AS WK
IF @WK_COUNT = @A_COUNT * 2 BEGIN
RETURN 一致
END ELSE BIGIN
RETURN 不一致
END
こんな感じか?