2012-02-19 22 views
1

私はDB2データベースの2つのテーブルからデータを抽出してテンポラリテーブルにロードできるインフォーマティックワークフローを作成しています。 2つのソーステーブル名がAccount(Parent)およびActivities(Child)であるとします。彼らは1:Mの関係を持っています。アカウントには多くのアクティビティ(Account.PK = Activities.FK)があることを意味します。アクティビティテーブルには、2つのカラムがあります。新しいタイプのアクティビティレコード、日付と時刻を作成するたびに、値が「有料」、「有料」または「非有料」の2つのカラムが「Created_Date」datetimeデータ型です。このフィールドにはスタンプが付きます。今、一時テーブルにデータをロードする条件は - "勘定科目レコードの場合、今日の給与活動(タイプ=給与)のアクティビティテーブルを最初にチェックします。複数の払い出されたアクティビティが見つかった場合は、 1つ(Created_Date列)があります。アカウントの有料アクティビティレコードがない場合、最新の作成された「ウィルペイ」アクティビティが選択されます。それが存在しない場合は、アカウントの今日(Sysdate)の最新の有料アクティビティを選択する必要があります。それは、今日の最新のWill-payアクティビティを選択します。 Informaticaのワークフローでこのロジックをどのように実装でき、どの変換を使用し、どのように実装すればいいのか理解してもらえますか?どうもありがとう。親切に助けてください。DB2データベースの2つのテーブルからデータを抽出してテンポラリテーブルにロードする

答えて

0

ETL上でビジネスロジックを実現するためには、SQLでそれを行う最善の方法は良くありません。しかし、あなたが主張するなら、それはいろいろな方法で作り出すことができます。例:

SQLオーバーライド オーバーライドされたSQL(および列も含む)と条件用の1つの式変換を使用して、アクティビティテーブルに対して3つのルックアップ変換を作成できます。

  1. 検索複数の「有給の活動が最後見つけるために、アカウントごとに最後の「有給の活動
  2. 検索を見つけるために検索
  3. を占める見つけるに戻るには、アカウントごと
  4. 式を活動「を支払うことになります」正しいアクティビティのキーを1から3までの検索結果に基づいて返します。

SQLオーバーライドを使用しないと、フィルタ、アグリゲータ、結合線変換を使用して同様のロジックを再作成する必要があります。

関連する問題