Search code examples
sqlsql-serversql-server-2005

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


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 dbo.foobar
WHERE Participating_City = 'foofoo'
GROUP BY Master_Code ORDER BY Master_Code ASC

something like this:

    Master_Code Jan Feb Mar 
    1            4   5   6
    2            5   5   5
    Total        9  10  11

Solution

  • 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