1

history_tableを使用してレポートを作成しようとしています。テーブル内のex(ss.dem1)と(ss.dem2)の2つのフィールドのみが変更された場合に、履歴のみを表示するためにレコードのみを取得する方法を知りたいです。テーブル内の電話や住所など、他に変更があった場合。また、レポートでそれを取り上げたり抑制したりしないようにします。この2つのフィールドだけが変更され、変更されるたびに履歴としてデータを表示したいと思います。
ここに画像の説明を入力してください

これは私が達成しようとしていることの例です。

私も抑制式を使用しようとしましたが、最後のレコードのみを取得し、上記のような例を表示しませんでした

onlastrecordではなくnext(PATID)= PATIDでnext(ssdem1)= ssdem1またはonlastrecordではなくnext(PATID)= PATIDでnext(ssdem2)= ssdem2

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

4

1 に答える 1

1

DB側では、自己参加を実行して、関心のあるアイテムの1つが変更されたレコードのみを保持できます。例:

select WHATEVER
from HISTORY H1, HISTORY H2
where H1.PAT_ID=H2.PAT_ID
 and (H1.DEM1 <> H2.DEM1
      or H1.DEM2 <> H2.DEM2
      etc...)

または、レポートをPAT_IDで並べ替え、次に編集の日時で並べ替えてから、何も変更されていない行を非表示にすることもできます。これは、実行しようとしていたことのように聞こえます。正確な抑制式を投稿すると、どこが間違っているのかがわかるかもしれません。次のようなものにする必要があります:

not(onfirstrecord) or
({TABLE.PAT_ID}=previous({TABLE.PAT_ID})
 and {TABLE.DEM1}=previous({TABLE.DEM1}) //check all fields you're concerned with for equality
 and {TABLE.DEM2=previous({TABLE.DEM2})
 and etc...)
于 2012-10-09T19:35:28.533 に答える