0

タスク:(同じ構造の)2つの異なるテーブルのデータを検証しています。このために、レコードでチェックサム関数を使用しようとしました。

問題:テーブルのレコードが同じです。ただし、checksum(*)を使用すると、異なるCheckSumが得られます。

SELECT statusName,CheckSum(*) from OrderStatus

DateTime列を除いてチェックサムを計算すると、両方のテーブルで同じ値が得られます。

SELECT statusName,CheckSum(StatusName,CreatedByUser,ModifiedByUser) from OrderStatus

テーブルの列:StatusName、CreatedByUser、ModifiedByUser、CreatedDateTime、LastModifiedTime

日時列を含めることにより、これを解決する方法。

どんな助けでも大歓迎です!!!!

4

3 に答える 3

1

チェックサムの場合、列の順序によって違いが生じます。

最初のクエリの * をまったく同じ列のリストに置き換えます。 CheckSum日付と日時で動作するはずです。

于 2013-01-15T18:44:55.437 に答える
0

それは私のために働いているようです。これがSQL Fiddleです。

DateTime 列に何か問題があると思われます。これを実行して、何か違うかどうかを確認してください。

SELECT *
FROM OrderStatus OS1
LEFT JOIN OrderStatus OS2 ON OS1.CreatedDateTime = OS2.CreatedDateTime AND OS1.LastModifiedTime=OS2.LastModifiedTime
WHERE OS2.LastModifiedTime IS NULL
于 2013-01-15T18:45:17.147 に答える
0

これを試して:

SELECT statusName,
CheckSum(CreatedByUser,ModifiedByUser,CreatedDateTime,LastModifiedTime) 
from OrderStatus
于 2013-01-15T18:47:28.590 に答える