sql server 2005

How can I write a query against A to display B? When the count(PlanEffDt) is 2, I only want to display the FFSContr_ID record with the max(PlanEffDt).

A                                                                                    
FFSContr_ID      Par_id                Trend_type      TypeOfContract      Year      count(PlanEffDt)      PlanEffDt                                                
101853             956006143 A      CTR                  MDCR                     2009       1             6/1/2009                                                
241296             956006143 A      CTR                  MDCR                     2010       1             1/1/2010                                                
241297             956006143 A      CTR                  MDCR                     2011       1             1/1/2011                                                
218955             956006143 A      CTR                  MDCR                     2011       1             7/1/2011                                                
241298             956006143 A      CTR                  MDCR                     2012       1             7/1/2012                                                
241299             956006143 A      CTR                  MDCR                     2013       1             7/1/2013
277568             956006143 A      CTR                  MDCR                     2014       1             7/1/2014

B                                    
LastOfFFSContr_ID      Par_id                 Trend_type      TypeOfContract      Year      count(PlanEffDt)      MaxOfPlanEffDt
101853                        956006143 A      CTR                  MDCR                     2009           1                      6/1/2009
241296                        956006143 A      CTR                  MDCR                     2010           1                      1/1/2010
218955                        956006143 A      CTR                  MDCR                     2011           2                      7/1/2011
241298                        956006143 A      CTR                  MDCR                     2012           1                      7/1/2012
241299                        956006143 A      CTR                  MDCR                     2013           1                      7/1/2013
277568                        956006143 A      CTR                  MDCR                     2014           1                      7/1/2014
HNA071252Asked:
Who is Participating?
 
cyberkiwiConnect With a Mentor Commented:
SELECT (
            SELECT TOP 1 FFSContr_ID
            FROM TRP.FFS_Contracts B
            WHERE A.Par_id = B.Par_id
            AND A.TypeOfContract = B.TypeOfContract
            AND A.[Year] = B.[Year]
            ORDER BY PlanEffDt DESC) FFSContr_ID,
      Par_id, TypeOfContract, [Year], count(PlanEffDt), max(PlanEffDt)
FROM TRP.FFS_Contracts A
WHERE TypeOfContract in ('MDCR','MPPO') and Trend_type = 'CTR'
GROUP BY Par_id, TypeOfContract, [Year]
0
 
robertg34Connect With a Mentor Commented:
select
a.ffscontr_id,
a.par_id,
a.trend_type,
a.typeofcontract,
a.year,
count(a.planeffdt),
case b.planeffdt = 2 then b.maxofplaneffdt
     else a.planeffdt
from tableA a inner join tableb b on
a.ffscontr_id = b.last_ffscontr_id
0
 
HNA071252Author Commented:
It works. Thank you so much! You've made my day.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.