-1

Informatica 経由で最新の更新レコードを取得する方法を知りたいです。一時テーブルに 10 個のレコードがあるとします。Account1 に 3 つのレコード、Account2 に 3 つのレコード、Account3 に 4 つのレコード。これら 3 つのアカウントのうち、最大の日付値 (最新の日付) を持つレコードのみをフェッチし、別の一時テーブルに挿入する必要があります。では、これを取得するためにどの変換を使用できるか、または使用すべきインフォマティカロジックを使用する必要がありますか? 助けてください。

4

3 に答える 3

1
  1. 日付列が一意の日付の入力からのものである場合は、それに基づいてアグリゲーター変換を使用し、最大の日付を取得します。
  2. 日付列が存在しない場合は、システムタイムスタンプを割り当ててください。ただし、これから最大の日付を取得することはできません。rowidやrownum機能のような他のロジックを選択する必要があります。
于 2012-02-21T05:21:12.080 に答える
0

ソースが DB の場合、SQ 自体で実行できます。pk フィールドでグループ化して一時テーブルを作成し、この pk フィールドと max(date) を選択します。次に、pk と date に基づいて、この出力を元のソースと結合します。例:

select * from src_table
join ( select pk,max(date) as maxdate from src_table ) aggr_table
on src_table.pk=aggr_table.pk
and src_table.date=aggr_table.maxdate

アグリゲーターとジョイナーを使用して、インフォマティカ内で同じことを実装できます。ただし、アグリゲーターのソースは sq であり、出力は sq と結合しているため、アグリゲーターとジョイナーの間に 1 つのソーターが必要になります。

于 2016-02-26T20:14:31.283 に答える
0

アグリゲーター変換を使用できます。最初に、アカウントと日付の昇順に基づく並べ替えでソーター変換を使用できます。その後、アグリゲーター変換 (アカウントに基づくグループ化) を実行できます。アグリゲーターはすべてのグループの最後のレコードを提供するため、条件やグループ化関数を追加する必要はありません。

于 2016-04-20T18:59:40.267 に答える