この段階では比較的単純なクエリに取り組んでいますが、列データ(ステータス)に変更があった場合に、どのようにして1行のデータを取得できるのでしょうか。これはごちゃごちゃしているように聞こえますが、正しい言い方がわからないので、お見せします。
列(whse_load_ts)の最高の日付スタンプを抽出しようとしています。列(whse_ac)の値はYではありません。これで1行を返します。
C_CLM C_STA_CLM WHSE_ACTN_CD WHSE_CURR_ROW_IND WHSE_LOAD_TS
12056733 AC U 2012-05-30 03:18:12
現在、ステータスc_sta_clmが変更されたため、2行が返されています。
C_CLM C_STA_CLM WHSE_ACTN_CD WHSE_CURR_ROW_IND WHSE_LOAD_TS
12056733 AC U 2012-05-30 03:18:12
12056733 PC U 2012-04-28 03:19:38
この特定のクレームのすべてのデータは次のようになります。
12056733 PC I 2012-02-04 03:20:25.150
12056733 PC U 2012-02-07 03:19:43.230
12056733 PC U 2012-02-11 03:21:31.440
12056733 PC U 2012-04-28 03:19:38.380
12056733 AC U 2012-05-17 03:18:25.920
12056733 AC U 2012-05-19 03:20:33.200
12056733 AC U 2012-05-30 03:18:12.370
12056733 TE U Y 2012-06-06 03:20:07.520
クエリは次のとおりです
SELECT
c_clm,
c_sta_clm,
whse_curr_row_ind,
max(whse_load_ts) as "Loaded"
FROM
pearl_p.TLTC900_CLM_PRSST
WHERE
whse_curr_row_ind not in('y')
AND c_clm = '12056733'
group by 1,2,3
基本的に、whse_curr_row_ind列にYがないものの最大日が必要な場合は、各ステータスAC/PCの最大日を取得します。