2011-11-15 12 views
0

私はtempテーブルの結果をストアドプロシージャから取得しています。このtempテーブルから取り出したいのは、最大stage_dtのレコードだけです。クライアントのdupを削除します。リスト。 rownumの列は同一性です。このテンポラリテーブルから、最大日付のレコードを列stage_dtに選択する方法を教えてください。tempdテーブルの重複レコードをmaxdateカラムで選択しない

lname  fname RO#  fow_visit stage_dt     T_Stage status rownum 
ADINYIRA DELA 09-0373 2011-10-06 2010-09-28 17:02:30.460   Y  6 
ADINYIRA DELA 09-0373 2011-10-06 2009-10-08 12:50:33.007 T2  Y  7 
APPELLO CAROL 08-0493 2011-04-13 2011-04-08 12:48:31.310   Y  40 
APPELLO CAROL 08-0493 2011-04-13 2008-10-13 18:20:49.210 4  Y  41 
BLACK  ERMA 10-0054 2011-10-06 2010-02-02 16:04:42.273 T0  Y  90 
BLACK  ERMA 10-0054 2011-10-06 2010-02-02 16:23:11.193 T1c  Y  91 
BROWN  VERSIE 07-0455 2011-09-22 2007-10-17 15:19:10.330 0(is) Y  123 
BROWN  VERSIE 07-0455 2011-09-22 2009-08-21 12:23:50.980 T2  Y  124 
+0

サンプルを添付するのを忘れました:RO#lname fname fow_visit stage_dt T_Stage surv_status rownum 05-0022 ZHAO XIAN MING 2011-03-30 2005-04-14 14:58:02.650 3 Y 2 05-0023 ZHAO XIAN MING 2011-03 -30 2005-04-14 14:58:02.650 3 Y 3 05-0081 BAREFIELD SYBIL 2011-07-20 2008-07-02 11:18:37.950 1c Y 13 05-0081 BAREFIELD SYBIL 2011-07-20 2008- 07-02 11:18:37.950 2 Y 14 – pots06

答えて

0

あなたはこのクエリを試すことができます。

with temp_cte([RO#], [stage_dt]) 
as 
(
    select [RO#], max([stage_dt]) as [stage_dt] 
    from temp 
    group by [RO#] 
) 

select temp.* 
from temp 
join temp_cte on temp_cte.[RO#] = temp.[RO#] 
    and temp_cte.[stage_dt] = temp.[stage_dt] 

は、他の方法がありますが、私はこれは簡単だと思います。

+0

ありがとうございました。しかし、何か他のものを見つけました。ある日は、同じ日、時間、分のROUでダブがあります: – pots06

+0

()をstage_dtでパーティション順に適用し、rank()= 1を選択します。 –

0

あなたはこれを試すことができます。

SELECT * FROM temp_table 
    WHERE stage_dt IN (SELECT max(stage_dt) FROM temp_table) 

DBシステムによれば、 IN演算子=またはDBシステムに合った別のオペレータに置き換えることができます。

関連する問題