以下のテーブルがあります。ここでは、値 STAT_NEW = 'Sent to xxxx Project Team' のカウントを取得したいと考えています。値 stat_new='Sent to VMO' が発生する前に、カウント値が必要です。
SQL> Select * from sample_test;
ID CONTRACT_ID STAT_NEW UPD_DT
----------------------------- -------------------------------------- ----------
0 CR 01 to MWO 1 Sent to xxxx Project Team 11-AUG-13
1 CR 01 to MWO 1 Sent to xxxx Project Team 11-AUG-13
2 CR 01 to MWO 1 Sent to xxxx Project Team 11-AUG-13
3 CR 01 to MWO 1 Sent to VMO 12-AUG-13
4 CR 01 to MWO 1 Sent to xxxx Project Team 11-AUG-13
5 CR 01 to MWO 1 Sent to xxxx Project Team 11-AUG-13
6 CR 01 to MWO 1 Sent to VMO 12-AUG-13
7 CR 01 to MWO 2 Sent to xxxx Project Team 11-AUG-13
8 CR 01 to MWO 2 Sent to xxxx Project Team 11-AUG-13
9 CR 01 to MWO 2 Sent to xxxx Project Team 11-AUG-13
10 CR 01 to MWO 2 Sent to VMO 12-AUG-13
11 CR 01 to MWO 3 Sent to xxxx Project Team 12-AUG-13
12 CR 01 to MWO 3 Sent to xxxx Project Team 12-AUG-13
13 CR 01 to MWO 3 Sent to VMO 13-AUG-13
7 rows selected
特定のコントラクト ID を指定する以下のシナリオを試しましたが、VMO に送信されたものが 1 つしかない場合は、以下のシナリオが機能しています。
select count(*) from sample_test where upd_dt <= (select UPD_DT from sample_test where stat_new='Sent to VMO' and contract_id='CR 01 to MWO 1') AND stat_new='Sent to xxxx Project Team';
私の期待される出力は以下のようなものです....
CONTRACT_ID count of STAT_NEW='Sent to xxxx Project Team'
-------------- ------------
CR 01 to MWO 1 3
CR 01 to MWO 1 2
CR 01 to MWO 2 3
CR 01 to MWO 3 2