Code Block
declare @xample table
( PolId datetime,
CoverageId datetime,
EffDate datetime,
Limit1 integer
)
insert into @xample
select '1997-08-11 09:30:38.573','1997-07-08 12:25:33.627','1997-08-30 00:00:00.000',158000 union all
select '1997-08-11 09:30:38.573','1998-03-11 08:11:18.513','1998-03-26 00:00:00.000',100000 union all
select '2007-06-07 16:52:00.797','2007-06-08 14:37:21.233','2007-06-18 00:00:04.000',490400 union all
select '2007-06-07 16:52:00.797','2007-06-08 14:37:21.233','2007-08-28 00:00:01.000',490400 union all
select '1997-08-11 09:30:38.573','1998-04-15 11:44:05.310','1997-08-30 00:00:00.000',160000 union all
select '1997-08-11 09:30:38.573','1998-04-15 11:44:05.310','1998-03-26 00:00:00.000',160000 union all
select '1997-08-11 09:30:38.573','1998-04-17 10:52:10.100','1998-03-26 00:00:00.000',160000 union all
select '1997-08-11 09:30:38.573','1998-04-17 10:52:40.100','1998-03-26 00:00:00.000',100000 union all
select '1997-08-11 09:30:38.573','1998-04-21 09:02:29.907','1998-03-26 00:00:00.000',160000 union all
select '1997-08-11 09:30:38.573','1998-04-21 09:02:29.907','1998-05-16 00:00:00.000',160000 union all
select '1997-08-11 09:30:38.573','1998-04-21 09:02:59.907','1998-03-26 00:00:00.000',100000 union all
select '1997-08-11 09:30:38.573','1998-04-21 09:02:59.907','1998-05-16 00:00:00.000',100000 union all
select '1997-08-11 09:30:38.573','1998-05-26 08:10:19.040','1998-05-16 00:00:00.000',100000 union all
select '1997-08-11 09:30:38.573','1998-06-03 13:58:01.743','1998-05-16 00:00:00.000',100000 union all
select '1997-08-11 09:30:38.573','1998-06-03 13:58:01.743','1998-06-18 00:00:00.000',100000 union all
select '1997-08-11 09:30:38.573','1998-06-15 13:08:28.727','1998-05-18 00:00:00.000',100000 union all
select '2007-03-28 13:48:08.810','2004-03-24 15:59:56.060','2007-03-21 00:00:00.000',177000 union all
select '2007-03-28 13:48:08.810','2004-03-24 15:59:56.060','2007-03-21 00:00:01.000',177000 union all
select '2007-03-28 13:48:08.810','2004-03-24 15:59:56.060','2007-03-27 00:00:00.000',177000 union all
select '2007-03-28 13:48:08.810','2004-03-24 15:59:56.060','2007-05-24 00:00:00.000',188000 union all
select '2007-03-28 13:48:08.810','2004-03-24 15:59:56.060','2007-05-24 00:00:01.000',188000 union all
select '2007-03-29 11:03:54.060','2005-05-13 08:38:02.857','2007-05-20 00:00:00.000',213000 union all
select '2007-03-29 11:03:54.060','2005-05-13 08:38:02.857','2007-05-20 00:00:01.000',213000 union all
select '2007-03-29 11:03:54.060','2005-05-13 08:38:02.857','2007-07-12 00:00:00.000',213000 union all
select '2007-03-29 11:03:54.060','2005-05-13 08:38:02.857','2007-07-12 00:00:01.000',213000 union all
select '2007-06-07 16:52:00.797','2007-06-08 14:37:21.233','2007-06-18 00:00:01.000',490400 union all
select '2007-06-07 16:52:00.797','2007-06-08 14:37:21.233','2007-06-18 00:00:02.000',490400 union all
select '2007-06-07 16:52:00.797','2007-06-08 14:37:21.233','2007-06-18 00:00:03.000',490400
select PolID, max (CoverageID) as CoverageID, max (Effdate) as Effdate
From @xample
group by PolID
select PolID, CoverageID , Effdate
From @xample as c1
Where c1.CoverageID = (select max(c2.coverageID)
FRom @xample as c2
Where c1.PolId = c2.PolId)
and c1.EffDAte = (select max (effdate)
From @xample as c2
Where c1.PolId = c2.PolId
and c1.CoverageID = c2.CoverageID)
--------------------------------------------------------------------
select c1.PolID, c1.CoverageID , c1.Effdate, c1.Limit1
From @xample as c1
inner join
(
select c2.PolID, c2.CoverageID , max(c2.Effdate) as Effdate
From @xample as c2
inner join
(
select c3.PolID, max(c3.CoverageID) as CoverageID
From @xample as c3
GROUP BY PolID
) as maxcov
on c2.PolID = maxcov.PolID
and c2.CoverageID = maxcov.CoverageID
GROUP BY c2.PolID, c2.CoverageID
) as maxlist
on c1.PolID = maxlist.PolID
and c1.CoverageID = maxlist.CoverageID
and c1.Effdate = maxlist.Effdate