T-SQL I am joining a services table to a payments table. I am using MAX, AVG for payments_rec'd and allowed_ amounts. I need Balance by last line number per service from the PayApp table. Sometimes payments are listed and then subtracted so the MIN balance doesn't work. I'm thinking of an inline select statement but cannot use an aggregate function inline.
SELECT DISTINCT [CDCLSVC].[RECNUM]
,[CDCLSVC].[ID]
,[CDCLSVC].[CLIENT_ID]
,[CDCLIENT].[CASE_NUM]
,[CDCLSVC].[UNIT_ID]
,[CDCLSVC].[SUB_UNIT_ID]
,[CDCLSVC].[SVC_ID]
,[CDCLSVC].[EMP_ID]
,[CDCLSVC].[BEG_DATE]
,UPPER([CAEMP].[SORT_NAME]) as Employee
,ISNULL([CDCLSVC].[EXTENDED_PRICE],0) As ExtendedPrice
,ISNULL([CDCLSVC].[BALANCE],0) As Balance
,ISNULL(MAX([CDPAYAPP].[ALLOWED_AMT]),0) AS AllowedAmount
,ISNULL(MAX([CDPAYAPP].[ADJ_AMT]),0)As AdjustedAmount
,ISNULL(SUM([CDPAYAPP].[PAY_APPLIED_AMT]),0)As PaymentApplied
,ISNULL(MAX([CDPAYAPP].[WRITE_OFF_AMT]),0)AS WriteOff
,ISNULL(MIN([CDPAYAPP].[SVC_BALANCE]),0) AS SvcBalance
,UPPER([CDPLACE].[DESC]) as Location
FROM [AnaDEV].[dbo].[CDCLSVC]
INNER JOIN [CAEMP] ON [CDCLSVC].[EMP_ID] = [CAEMP].[ID]
INNER JOIN [CDCLIENT] ON [CDCLSVC].[CLIENT_ID] = [CDCLIENT].[ID]
INNER JOIN [CDPLACE] ON [CDCLSVC].[PLACE_ID] = [CDPLACE].[ID]
INNER JOIN [CDPAYAPP] ON [CDPAYAPP].[CLSVC_ID] = [CDCLSVC].[ID]
WHERE [CDCLSVC].[BEG_DATE] between '2015-07-01' and DATEADD(DAY,-
(DATEPART(DAY, getdate())),GETDATE())
GROUP BY CDCLSVC.RECNUM,CDCLSVC.ID,CDCLSVC.CLIENT_ID,
CDCLIENT.CASE_NUM,CDCLSVC.UNIT_ID, CDCLSVC.SUB_UNIT_ID,
CDCLSVC.SVC_ID,CDCLSVC.EMP_ID, CDCLSVC.BEG_DATE, CAEMP.SORT_NAME,
CDCLSVC.EXTENDED_PRICE,CDCLSVC.BALANCE, [CDPLACE].[DESC]
ORDER BY [CDCLIENT].[CASE_NUM], [CDCLSVC].[ID]