How to get the Sum of all column values in the last row of a resultset?

前端 未结 3 1191
挽巷
挽巷 2020-12-29 12:24

I need to get the sum of all column values of a result set in the last row.
Here is my SQL query.

select Master_Code, SUM(Jan), SUM(Feb), SUM(Mar)
from d         


        
相关标签:
3条回答
  • 2020-12-29 12:39

    Make a union where you repeat the same query but without the grouping:

    select Title, Jan, Feb, Mar
    from (
      select Master_Code as Title, SUM(Jan) as Jan, SUM(Feb) as Feb, SUM(Mar) as Mar
      from dbo.foobar
      WHERE Participating_City = 'foofoo'
      GROUP BY Master_Code ORDER BY Master_Code ASC
    ) x
    union all
    select 'Total', SUM(Jan) as Jan, SUM(Feb) as Feb, SUM(Mar) as Mar
    from dbo.foobar
    WHERE Participating_City = 'foofoo'
    
    0 讨论(0)
  • 2020-12-29 12:40

    You can also use Coalesce and With Rollup.

    SELECT COALESCE(Master_Code, 'TOTAL') AS MASTER_CODE, SUM(Jan), SUM(Feb), SUM(Mar)
    FROM dbo.foobar
    WHERE Participating_City = 'foofoo'
    GROUP BY Master_Code WITH ROLLUP
    ORDER BY Master_Code DESC
    
    0 讨论(0)
  • 2020-12-29 12:57

    Assuming there are no null master_code rows.

    SELECT ISNULL(Master_code, 'Total') AS Master_Code,
           Jan,
           Feb,
           Mar
    FROM (
          SELECT Master_code,
                 SUM(Jan) AS Jan,
                 SUM(Feb) AS Feb,
                 SUM(Mar) AS Mar
          FROM foobar
          WHERE Participating_City = 'foofoo'
          GROUP BY Master_code WITH ROLLUP
         ) AS DT
    
    0 讨论(0)
提交回复
热议问题