MS SQL查询子查询的总和

我需要帮助我从查询输出。

SELECT ARG_CONSUMER, cast(ARG_TOTALAMT as float)/100 AS 'Total', (SELECT SUM(cast(DAMT as float))/100 FROM DEBT WHERE DDATE >= ARG.ARG_ORIGDATE AND DDATE <= ARG.ARG_LASTPAYDATE AND DTYPE IN ('CSH','CNTP','DDR','NBP') AND DCONSUMER = ARG.ARG_CONSUMER ) AS 'Paid' FROM ARGMASTER ARG WHERE ARG_STATUS = '1' 

当前输出是所有logging的列表…

但是我想在这里实现的是

 count of arg consumers Total of ARG_TOTALAMT total of that subquery PAID difference between PAID & Total amount. 

我能够达到ARG TOTALAMT的前两位,即消费者数量和总数…但我对…的总和感到困惑

 sum (SELECT SUM(cast(DAMT as float))/100 FROM DEBT WHERE DDATE >= ARG.ARG_ORIGDATE AND DDATE <= ARG.ARG_LASTPAYDATE AND DTYPE IN ('CSH','CNTP','DDR','NBP') AND DCONSUMER = ARG.ARG_CONSUMER) AS 'Paid' 

请指教

将子查询更改为OUTER APPLY

 SELECT COUNT(DISTINCT ARG_CONSUMER) AS [count of arg consumers], cast(ARG_TOTALAMT as float)/100 AS [Total], foo.Paid, cast(ARG_TOTALAMT as float)/100 - foo.Paid AS [difference between PAID & Total amount] FROM ARGMASTER ARG OUTER APPLY ( SELECT SUM(cast(D.DAMT as float))/100 AS Paid FROM DEBT D WHERE DDATE >= ARG.ARG_ORIGDATE AND D.DDATE <= ARG.ARG_LASTPAYDATE ANDD. DTYPE IN ('CSH','CNTP','DDR','NBP') AND D.DCONSUMER = ARG.ARG_CONSUMER ) foo WHERE ARG.ARG_STATUS = '1'