View Single Post
  #3 (permalink)  
Old 07-28-10, 16:25
Pat Phelan Pat Phelan is offline
Resident Curmudgeon
 
Join Date: Feb 2004
Location: In front of the computer
Posts: 12,605
FULL OUTER joins are fun! I'd try:
Code:
SELECT 
   SUM(BD.Extended), SUM(ABS( i.extended)) as Insurance
,  DateDiff(qq, '01/01/2007' ,i.[Service Date 1]) AS Quarter
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) BETWEEN 0 AND 3 THEN ABS(i.extended) END) AS b0_3
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) BETWEEN 4 AND 6 THEN ABS(i.extended)  END) AS b4_6
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) BETWEEN 7 AND 9 THEN ABS(i.extended)  END) AS b7_9
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) BETWEEN 10 AND 12 THEN ABS(i.extended)  END) AS b10_12
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) BETWEEN 13 AND 15 THEN ABS(i.extended)  END) AS b13_15
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) BETWEEN 16 AND 18 THEN ABS(i.extended)  END) AS b16_18
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) BETWEEN 19 AND 21 THEN ABS(i.extended)  END) AS b19_21
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) BETWEEN 22 AND 24 THEN ABS(i.extended)  END) AS b22_24
,  SUM (CASE WHEN DateDiff(mm, BD.[Service Date 1], i.[Service Date 1]) >24 THEN ABS(i.extended) ELSE 0 END) AS b25_Above
   FROM  [Billing Detail] as BD 
   FULL OUTER JOIN [Billing Detail] AS O
      ON (O.[Billing] = BD.[Billing]
      AND O.[unique id] = BD.[unique id])
   FULL OUTER JOIN [Billing Detail] AS I
      ON (I.[billing] = O.[billing]
      AND I.[item] = O.[item] 
      AND I.[transaction code] = O.[cpt code]
      AND I.[Service Date 1] BETWEEN @StartDate AND @EndDate
      AND I.[transaction Code] IN ('PIP', 'APPEA0001', 'ATTYPYMT'
,        'INPRO0000', 'INTPMTS', 'LPMT0000'
,        'MRPYMT', 'NONRESP', 'PARTI0000'
,        'PARTI0001', 'PPCA', 'PPCC'
,        'PPCH', 'PPIP', 'PSIP'
,        'PTIP', 'SETTL0000', 'SETTOPAT'
,        'SIP ', 'STMT', 'SUPCA'
,        'SUPCC', 'SUPCH', 'IP'
,        'MP', 'PIP', 'TIP'
,        'VOUCHER', 'VOUCHPHON'))
   WHERE  BD.extended > 0 
   GROUP BY DateDiff(qq, '01/01/2007' , i.[Service Date 1])
-PatP
__________________
In theory, theory and practice are identical. In practice, theory and practice are unrelated.
Reply With Quote