| Author |
Topic |
|
nirene
Yak Posting Veteran
98 Posts |
Posted - 2010-09-03 : 07:01:11
|
| Hai,I'm using SQL Server 2005DECLARE @Sample TABLE ( ContNo Varchar(7),Refno Varchar(10), Refdt SmallDatetime,Amount Real )INSERT Into @SampleSelect 'C1','R100','2010/04/01',10000Union AllSelect 'C1','R212','2010/05/01',9000 Union All Select 'C1','R344','2010/05/01',9500Union All Select 'C2','R433','2010/03/01',9080Union All Select 'C2','R534','2010/04/01',9000Union All Select 'C2','R234','2010/05/01',9400Union All Select 'C2','R236','2010/06/01',9400I want to find the max refdt of a particular contno and its receipt particularsOutput ExpectedC1,R344,2010/05/01,9500C2,R236,2010/06/01,9400 |
|
|
vaibhavktiwari83
Aged Yak Warrior
843 Posts |
Posted - 2010-09-03 : 07:28:11
|
| What is the logic to select such output ?Vaibhav TTo walk FAST walk ALONE To walk FAR walk TOGETHER |
 |
|
|
Lamprey
Master Smack Fu Yak Hacker
4614 Posts |
Posted - 2010-09-03 : 11:58:33
|
How do you want to handle ties? Meaning mutiple records for the same date..?Here are a couple queries that might help get you on your way:-- Query 1SELECT ContNo, Refno, Refdt, AmountFROM( SELECT *, ROW_NUMBER() OVER (PARTITION BY ContNo ORDER BY RefDt DESC) AS RowNum FROM @Sample) AS TWHERE RowNum = 1-- Query 2SELECT ContNo, Refno, Refdt, AmountFROM( SELECT *, RANK() OVER (PARTITION BY ContNo ORDER BY RefDt DESC) AS RowNum FROM @Sample) AS TWHERE RowNum = 1--Query 3 SELECT A.*FROM @Sample AS AINNER JOIN ( SELECT ContNo, MAX(Refdt) AS MaxDate FROM @Sample GROUP BY ContNo ) AS B ON A.ContNo = B.ContNo AND A.RefDt = B.MaxDate |
 |
|
|
nirene
Yak Posting Veteran
98 Posts |
Posted - 2010-09-04 : 01:45:24
|
| Thanks LampreyI slightly modified your query and it works for me.Thanks one again-- Query 1SELECT ContNo,Refno,Refdt,AmountFROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY ContNo ORDER BY RefDt DESC,Refno Desc) AS RowNum FROM @Sample) AS TWHERE RowNum = 1Nirene |
 |
|
|
|
|
|