問題タブ [scd2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5350 参照

sql-server - SCD2+マージステートメント+SQLServer

タイプSCD2のディメンションテーブルを挿入/更新するためにMERGEステートメントを使用して作業しようとしています

私のソースは、ディメンションテーブルとマージするテーブル変数です。

私のMERGEステートメントは次のようなエラーをスローしています:

FROM句にネストされたINSERT、UPDATE、DELETE、またはMERGEステートメントが含まれている場合、INSERTステートメントのターゲットテーブル'DM.DATA_ERROR.ERROR_DIMENSION'を(主キー、外部キー)関係のいずれかの側に置くことはできません。参照制約'FK_ERROR_DIMENSION_to_AUDIT_CreatedBy'が見つかりました。

私のMERGEステートメント:

私は何を間違っているのですか?

0 投票する
1 に答える
1805 参照

ssis - SCD1およびSCD2属性+SSISを使用したハイブリッドディメンションテーブルの読み込み

私はちょうど新しいタスクを開始する過程にあります。そこでは、SCD1とSCD2を使用してハイブリッドディメンションテーブルをロードする必要があります。これは、SSISパッケージとして実現する必要があります。誰かがSSISでこれを処理する最良の方法をガイドできますか?SCDコンポーネントを使用する必要がありますか、それとも他の方法がありますか?このためのベストプラクティスは何ですか。

SCD2タイプの場合、Mergeステートメントを使用しています。

ありがとう

0 投票する
0 に答える
56 参照

ssis - ソースとディメンション値の比較に基づくディメンションの変更

SSIS で Kimball SCD コンポーネントを使用しています。現在のディメンション値とソース データの比較に基づいて、タイプ 1 またはタイプ 2 のパスに行を転送できるようにしたいと考えています。次に 2 を入力し、それ以外の場合は 1 を入力します。

この種のデータ比較を行った人はいますか? トリガーの使用を検討しましたが、パフォーマンスへの影響が非常に大きくなる可能性があります。

スプリッターが機能するようですが、2 つのデータ ストリームの値を評価できる場所がわかりません。

ありがとう、

0 投票する
2 に答える
1912 参照

sql-server-2005 - SCD タイプ 2 の T-SQL 構文

現在、scd タイプ 2 データをディメンションにロードするクエリの最後の部分を完了しようとしています。以下に示すデータに基づいて、古いレコードの期限切れや履歴の追跡などに加えて、ディメンションに挿入できる出力を生成したいと考えています。データは、属性が変更された最新のレコードを持っているようなものです。変更された値は、変更が行われた日付、つまり dateOfchange とともに Lookup 列に表示されます。この dateOfchange は、明らかに最新のレコードの有効な日付になるはずです。

サンプル データは次のとおりです。

このデータを使用すると、新しい出力は次のようになります。

何か案は

0 投票する
2 に答える
668 参照

sql-server - SCD 2 テーブルの 1 日ごとの変化のレポートを作成する方法

SCD テーブルの 1 日あたりの新規/変更された行数を示すレポートを生成する必要があります。

テーブルを作成するSQLは次のとおりです。

結果は次のようになります。

今、私はこのような何かを生成する必要があります:

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

0 投票する
0 に答える
253 参照

dimension - mysql を使用して SCD2 ロジックを実装する

以下のようなレコードを持つテーブルを SD2 テーブルに処理する必要があります。これには、前の行の値を読み取り、それが一致すると判断してから処理する必要があります。スコア レコードに変更がない場合は更新され、それ以外の場合は削除され、SCD2 で終了のマークが付けられます。

名前 スコア 削除/更新 時間 Hemant 100 2012-08-01 Hemant 200 2012-08-10 Hemant 100 2012-08-11 Rahul 100 2012-08-01 Rahul 100 2012-08-02 Rahul 200 2012-08-03

データは次のようにテーブルにロードする必要があります:

名前 値 Valid From Valid TO Hemant 100 - 2012-08-01 Hemant 200 2012-08-01 2012-08-10 Hemant 100 2012-08-10 2012-08-11 Rahul 100 - 2012-08-02 Rahul 200 2012- 08-02 2012-08-03

同じキーと値のペアが後の日付または複数の日付で繰り返される可能性があるため、関数によるグループ化を使用できません。どんな提案でも大歓迎です。

よろしく

0 投票する
1 に答える
1886 参照

sql - SQL を使用して、緩やかに変化するタイプ 2 のディメンションから重複を削除する

同じデータを格納する複数のレイヤーを持つデータ ウェアハウスを構築しています。中間層の 1 つのデータはすべて、タイプ 2 の緩やかに変化するディメンションであるかのように、開始日と終了日でバージョン管理されます。これらのテーブルをクエリすると、問題が発生します。通常、テーブルにはクエリよりも多くの列があるため、クエリ内の隣接するバージョンの開始日と終了日は異なりますが、それ以外は同一です。これらのバージョンを組み合わせて、テーブルの行が変更された日付ではなく、クエリの列が変更された日付を表示したいと考えています。

ほとんど機能するSQLがいくつかあります:

ここでの問題は、3 つの行が必要な場合に、ID "4" に対して 2 つの行を返すことです。実際:

希望:値 DD が正しい期間に対して値 D が正しくないため、my クエリの最初の行 (4,'D') のバージョン日付が正しくありません。

純粋な SQL またはインラインのテーブル値関数でこれらの重複を削除できるようにしたい (これを行う複数ステートメントのテーブル値関数を作成するジェネレーターがありますが、結果の関数のパフォーマンスが低下します)。誰にもアイデアはありますか?

0 投票する
1 に答える
51 参照

sql-server - SCD を削除した後の孤立したレコードの回避

一部の SCD は必須ではなく、多数の重複を生成する SELECT EXCEPT ステートメントを使用して実装されているため、DW からいくつかの SCD を削除しています。孤立したレコードがないように、ファクト テーブルの参照をリダイレクトしたいと考えています。下のカーソルを使用してこれを達成することができました(と思います)。より滑らかな方法があったかどうか疑問に思いましたか?

0 投票する
1 に答える
189 参照

datetime - 複数の SCD タイプ 2 テーブルから結合された複数の日付範囲を検証するための Teradata SQL の作成に支援が必要

複数の SCD タイプ 2 表から派生しているビューを検証したいと考えていました。そのため、2 つ (またはそれ以上) のテーブルで利用可能な日付の組み合わせに基づいて日付範囲を作成する必要があります。以下の例を参照してください。

表1:

表 2:

結果セット:

これを達成するための手順: 私のアプローチ:

1) 2 つ (またはそれ以上) のテーブルで利用可能なすべての STRT_DTTM フィールド値の和集合を取ります。

2) ステップ 1 で利用可能な上記の日付から日付範囲を配布/再作成します。 (開始日と終了日として)

3) 次に、新しく作成された日付範囲で CDC フィールド (h1name & h2name ) を特定し、それらを結果セットに入れます。クエリ:

ステップ1:

ステップ2:

ステップ 3:

問題はステップ 2 にあります。CTE だけでなくサブクエリでも order by を使用できません。開始日を注文しないと、日付範囲を正しくリストできません。

誰でも解決策や他の簡単な方法を教えてください。私は QA であるため、ほとんどのデータベースでテーブル作成アクセス権を持っていないことに注意してください。そのため、select を使用した提案はより重要です。テーブルの作成に使用した DDL と DML を含めました。

0 投票する
1 に答える
86 参照

ssas - 緩やかに変化するディメンションを使用した PerformancePoint フィルターの管理

ほんの少しの背景情報:

SCD2 を使用して社内のユーザーの変更 (チームの変更、役職の変更など) を追跡するディメンション テーブルがあります。以下の例を参照してください。

ユーザー ディメンション列の一部

Analysis Services キューブを構築し、ディメンションに必要なすべての階層を作成しました。ファクト テーブルをナビゲートおよびドリルダウンするときにうまく機能します。

SSAS 階層

私が抱えている問題は、PerformancePoint ダッシュボードのフィルターにあります。ユーザーの複数のインスタンスでユーザー ディメンション テーブルを使用しているため、リストに重複が表示されます。サロゲート ID がディメンションで参照されている理由は理解できます。しかし、A チームの最初のインスタンスを選択すると、特定の期間のすべての売上が表示され、2 番目のインスタンスを選択すると、別の期間のすべての売上が表示されます。

重複したチーム名の例 1

この種の行動を処理する最善の方法は何ですか? 理想的には、チームの個別のリストをアルファベット順に表示したいと考えています。チーム名を選択すると、時間の経過に伴うすべてのデータが表示されます。

MDX クエリ フィルターの使用を検討しましたが、考えていないことがないか確認したいと思います。

これは簡単で簡単な質問ではないことは承知していますが、助けていただければ幸いです。