首页 > 解决方案 > 计算第一个月到最后一个月的总和

问题描述

如何计算从第一个月到最后一个月的总和?

例子:

我希望它是这样的

这是我尝试过的,但它没有像上面的示例那样显示输出。

select 
    left(convert(varchar,txd.OPERATIONALDATE,112),6) MONTH,
    sum(AMOUNTVALUE) TOTAL_A,
    sum(10*AMOUNTVALUE) TOTAL_B,
    sum(10*AMOUNTVALUE) + sum(10*AMOUNTVALUE) TOTAL_C
from tx_details txd
    inner join TX_SELISIH txs 
        on txd.TXID=txs.TXID 
            and txd.OFFICEID=txs.OFFICEID
where txd.operationaldate BETWEEN '20200101' AND '20201231'
    and TXDATE>'20190831' 
    and SELISIHTYPE=1
GROUP BY left(convert(varchar,txd.OPERATIONALDATE,112),6)

甚至有可能得到这样的结果吗?提前致谢。

标签: sql-serverssms-2017

解决方案


只需使用这个:

SELECT 
    left(convert(varchar,txd.OPERATIONALDATE,112),6) MONTH,
    sum(AMOUNTVALUE) TOTAL_A,
    sum(10*AMOUNTVALUE) TOTAL_B,
    SUM ( Sum(10*AMOUNTVALUE) + sum(10*AMOUNTVALUE) ) OVER ( ORDER BY left(convert(varchar,txd.OPERATIONALDATE,112),6) ) TOTAL_C
from tx_details txd
    inner join TX_SELISIH txs 
        on txd.TXID=txs.TXID 
            and txd.OFFICEID=txs.OFFICEID
where txd.operationaldate BETWEEN '20200101' AND '20201231'
    and TXDATE>'20190831' 
    and SELISIHTYPE=1
GROUP BY left(convert(varchar,txd.OPERATIONALDATE,112),6)

推荐阅读