こんにちは、データ ウェアハウスにデータをインポートしようとしています。一部のデータのインポートを簡素化するために、新しいデータを取得したときに最新の値を追跡する新しい列をテーブルに作成したいと考えています。
私のテーブルは次のようになります。
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ます。