Using Group By to get Desired Result
04:13 20 Nov 2014

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 
sql sql-server sql-server-2008