こんにちは、データ ウェアハウスにデータをインポートしようとしています。一部のデータのインポートを簡素化するために、新しいデータを取得したときに最新の値を追跡する新しい列をテーブルに作成したいと考えています。
私のテーブルは次のようになります。
CREATE TABLE CustomerFact(
Id INT IDENTITY PRIMARY KEY
,CustomerId NVARCHAR(20) NOT NULL --Current Id of a Customer
);
--Track changes to CustomerId
CREATE TABLE CustomerHistoryFact(
Id INT IDENTITY PRIMARY KEY
,CurrentCustomerId NVARCHAR(20) --Most recent Customer Id
,CustomerId NVARCHAR(20) NOT NULL --Customer Id at time of record insert
,PrvsCustomerId NVARCHAR(20) NOT NULL --Customer Id at time of transaction
,PrvsCustomerIdEffectiveDate DATE NOT NULL --Date when PrvsCustomerId was effective
,PrvsCustomerIdObsoleteDate DATE NOT NULL --When the PrvsCustomerId was expired and replaced with a new Customer Id
);
、CustomerId
、PrvsCustomerId
、PrvsCustomerIdEffectiveDate
およびPrvsCustomerIdObsoleteDate
はすべて外部です。CurrentCustomerId
新しいレコードが挿入されるたびに を割り当てたい。
これは、新しいレコードCustomerHistoryFact
がいつ挿入されるかによって決まります。他のすべてのレコードの をチェックしPrvsCustomerId
てください。CurrentCustomerId
一致する場合CustomerId
、新しいレコードの がCurrentCustomerId
以前のすべてのレコードの になるか、そうでない場合、レコードが挿入されてが にCustomerId
なりCurrentCustomerId
ます。