【发布时间】:2016-11-23 03:23:34
【问题描述】:
这是我的 SQL
SELECT K.SUBTOTAL_PERHOSP - G.SUBTOTAL_PERHOSP AS SOA
,K.SUBTOTAL_NOTHOSP - G.SUBTOTAL_NOTHOSP AS Disapproved
,G.SUBTOTAL_HB_TOHOSP + H.MEDICARE_INCENTIVES - H.MI_PAYABLES AS HApproved
,D.APPROVED
,k.fldvat_perhosp
,B.CONTROL_CODE
,F.OTHER_REMARKS
,(G.SUBTOTAL_HB_TOHOSP + H.MEDICARE_INCENTIVES - H.MI_PAYABLES) + (
SELECT sum(D.APPROVED)
FROM SYS_IN_PATIENT_MTBL B
LEFT JOIN SYS_IP_BILLPROC_PROFFEES_MTBL D ON B.CONTROL_CODE = D.CONTROL_CODE
WHERE B.CONTROL_CODE IN ('IP435168', 'IP435171')
) - G.MPI_PERHOSP AS NetPPD
,C.GP
,B.HOSPITAL_CODE
,B.DATE_RCVD
,B.DUE_DATE
FROM SYS_IN_PATIENT_MTBL B
INNER JOIN SYS_IP_BILLPROC_COMPUTATION_MTBL K ON B.CONTROL_CODE = K.CONTROL_CODE
INNER JOIN SYS_IP_BILLPROC_DEDUCTION_MTBL G ON B.CONTROL_CODE = G.CONTROL_CODE
LEFT JOIN SYS_IP_BILLPROC_REMARKS_MTBL H ON B.CONTROL_CODE = H.CONTROL_CODE
LEFT JOIN SYS_IP_BILLPROC_PROFFEES_MTBL D ON B.CONTROL_CODE = D.CONTROL_CODE
LEFT JOIN SYS_DOCTOR_LTBL E ON D.PF_CODE = E.DOCTOR_CODE
LEFT JOIN SYS_IP_BILLPROC_INFORMATION_MTBL F ON B.CONTROL_CODE = F.CONTROL_CODE
INNER JOIN SYS_HOSPITALS_LTBL J ON B.HOSPITAL_CODE = J.HOSPITAL_CODE
INNER JOIN SYS_HOSPITALS_LTBL C ON B.HOSPITAL_CODE = C.HOSPITAL_CODE
WHERE B.CONTROL_CODE IN ('IP435168', 'IP435171')
这是输出
注意NetPPD 列输出错误的值
一定是
4,250.70
4,250.70
17,975.21
17,975.21
我怎么能做到这一点,因为如果我使用多个 ID,它会在该列中添加所有内容,并且我不能在只返回一个值的 sql 中使用 group by
应该是
HApproved + Approved(600 + 800) = 4,250.70 (Same Control Code IP435168)
HApproved + Approved(600 + 1300) = 17,975.21 (Same Control Code IP435171)
注意:这些行不会合并,因为表的最右侧有一个唯一的列,我只是没有在此处包含它
【问题讨论】:
标签: sql sql-server sum aggregate