1
私は、データウェアハウスを見て、タイプ2の変化は、私は、行の日付にvaildが同じであることを確認する必要がありトン-SQLテスト・データウェアハウスタイプ2は
正しく動作することを確認する必要があります変更します次の行の日付からvaild。
このチェックは行が終了したことを確認することですが、以下は、キンボールタイプ2次元のテーブルに関連正しく
おかげで、マルク・
私は、データウェアハウスを見て、タイプ2の変化は、私は、行の日付にvaildが同じであることを確認する必要がありトン-SQLテスト・データウェアハウスタイプ2は
正しく動作することを確認する必要があります変更します次の行の日付からvaild。
このチェックは行が終了したことを確認することですが、以下は、キンボールタイプ2次元のテーブルに関連正しく
おかげで、マルク・
を開始されました。これは、現在のエントリのための遠い将来の日付として
3000-01-01
を前提としてい 注意。
CustomerKey
は、自動インクリメント整数です。この例では、次のエントリが見つからないか見つからない行のリストを表示する必要があります。
;
with
q_00 as (
select
CustomerKey
, CustomerBusinessKey
, rw_ValidFrom
, rw_ValidTo
, row_number() over (partition by CustomerBusinessKey order by CustomerKey asc) as rn
from dimCustomer
)
select
a.CustomerKey
, a.CustomerBusinessKey
, a.rw_ValidFrom
, a.rw_ValidTo
, b.CustomerKey as b_key
, b.CustomerBusinessKey as b_bus_key
, b.rw_ValidFrom as b_ValidFrom
, b.rw_ValidTo as b_ValidTo
from q_00 as a
left join q_00 as b on b.CustomerBusinessKey = a.CustomerBusinessKey and (b.rn = a.rn + 1)
where a.rw_ValidTo < '3000-01-01'
and a.rw_ValidTo != b.rw_ValidFrom ;
また、有用な
-- Make sure there are no nulls
-- for rw_ValidFrom, rw_ValidTo
select
CustomerKey
, rw_ValidFrom
, rw_ValidTo
from dimCustomer
where rw_ValidFrom is null
or rw_ValidTo is null ;
-- make sure there are no duplicates in rw_ValidFrom
-- for the same customer
select
CustomerBusinessKey
, rw_ValidFrom
, count(1) as cnt
from dimCustomer
group by CustomerBusinessKey, rw_ValidFrom
having count(1) > 1 ;
-- make sure there are no duplicates in rw_ValidTo
-- for the same customer
select
CustomerBusinessKey
, rw_ValidTo
, count(1) as cnt
from dimCustomer
group by CustomerBusinessKey, rw_ValidTo
having count(1) > 1 ;
がどのように次の行が何であるかを知っているのですか?これまでに何を試しましたか? – LittleBobbyTables
私は同じ顧客番号を持っていますが、ETLでは新しいIDを取得します。だから私は同じ顧客番号に基づいてテストする必要があります –