Как вы думаете, подойдет следующее?
set nocount on
declare @log table
(
log_id int
,fb_id int
,log_date datetime
,log_name nvarchar(25)
,log_type nvarchar(20)
)
insert into @log(log_id, fb_id, log_date, log_name, log_type) values (7, 4, convert(datetime,'8/11/2007', 103), N'Nina', N'Critical')
insert into @log(log_id, fb_id, log_date, log_name, log_type) values (6, 4, convert(datetime,'6/11/2007', 103), N'John', N'Critical')
insert into @log(log_id, fb_id, log_date, log_name, log_type) values (5, 4, convert(datetime,'6/11/2007', 103), N'Mike', N'Critical')
insert into @log(log_id, fb_id, log_date, log_name, log_type) values (4, 4, convert(datetime,'6/11/2007',103), N'Mike', N'Critical')
insert into @log(log_id, fb_id, log_date, log_name, log_type) values (3, 3, convert(datetime,'3/11/2007',103), N'Ben', N'Critical')
insert into @log(log_id, fb_id, log_date, log_name, log_type) values (2, 3, convert(datetime,'1/11/2007',103), N'Ben', N'Critical')
insert into @log(log_id, fb_id, log_date, log_name, log_type) values (1, 2, convert(datetime,'10/9/2007',103), N'Pat', N'Critical')
insert into @log(log_id, fb_id, log_date, log_name, log_type) values (0, 2, convert(datetime,'1/9/2007',103), N'Couger', N'Critical')
declare @result table
(
intid int identity(1,1)
,log_id int
,fb_id int
,log_date datetime
,log_name nvarchar(25)
,log_type nvarchar(20)
,_min_intid int
,_position int
)
insert into @result (log_id, fb_id, log_date, log_name, log_type)
select log_id, fb_id, log_date, log_name, log_type from @log order by fb_id, log_date
update r
set r._min_intId = w.freq
from @result r join
(select distinct fb_id, min(intid) freq from @result group by fb_id) w
on r.fb_id = w.fb_id
update @result set _position = intid - _min_intid + 1
select log_id, fb_id, log_date, log_name, log_type from @result where _position = 2