-3

データを入力するための複雑なクエリがあり、その後、テーブル内のデータを結合して正しい結果を得る必要があります。

テーブルを2回定義する必要がないように、結合を排除する方法。

結合クエリは -

 select t1.acc_no, t1.group_id, t1.remdt from @tbl t1
 inner join ( 
     select group_id, MAX(row_num) as max_row from @tbl group by group_id) t2 
   on t1.group_id= t2.group_id and t1.row_num=t2.max_row

上記のクエリでは、@tbl 一時テーブルをデカールする必要があります。

結合を使用する必要がなく、同じクエリを 2 回記述する必要がないように、同じ結果を取得する方法。

私の @tbl は、SQL を使用して入力されます -

  select  ReminderDt as 'rem dt',  m.Group_Id, m.AccountNumber,
row_number() over (partition by group_id order by reminderdt asc) as seqnum
from ACE_AccsLevelTran t join ACE_AccsLevelMaster m on t.MasterAccNumber=m.AccountNumber where m.AssignedUser=7

ありがとう

4

1 に答える 1

2

ウィンドウ関数でこれを行うことができますrow_number()

select  t.acc_no, t.group_id, t.remdt
from (select t.*, ROW_NUMBER() over (partition by group_id order by row_num desc) as seqnum
      from @tbl t
     ) t
where seqnum = 1;
于 2013-03-28T19:20:08.187 に答える