Using Group By to get Desired Result
I have a table "Table1" like below:
EffectiveDate Client Fund RunDate UserId
2014-05-31 A AGG 2014-06-03 user
2014-03-31 A AGG 2014-07-01 user
2014-10-31 A AGG 2014-11-04 user
2014-09-30 A EFA 2013-10-10 user
2014-11-31 A EFA 2014-01-15 user
2014-01-31 A EFA 2014-02-03 user
I need to get result like if Effective Date is maximum for any given input date then it'll only return that record for a particular Fund.I am using query to get desired result like :
SELECT Max(tbl.effectivedate) AS EffectiveDate,
tbl.client,
tbl.fund,
tbl.rundate,
tbl.userid
FROM (SELECT effectivedate,
client,
fund,
rundate,
userid
FROM Table1
WHERE effectivedate < = '11/01/2014') AS tbl
GROUP BY tbl.client,
tbl.fund,
tbl.rundate,
tbl.userid
But I am not getting the desired result. Please if anyone help me.
Desired Output :
EffectiveDate Client Fund RunDate UserId
2014-10-31 A AGG 2014-11-04 user
2014-09-30 A EFA 2013-10-10 user