DECLARE @tbl TABLE (City VARCHAR(25), [2018-07-14] int, [2018-07-15] int,
[2018-07-16] int, Total AS [2018-07-14] + [2018-07-15] + [2018-07-16])
INSERT INTO @tbl VALUES ('Satara', 3, 9, 1)
INSERT INTO @tbl VALUES ('Maharashtra', 0, 4, 1)
INSERT INTO @tbl VALUES ('Ghatkopar', 10, 1, 1)
SELECT City, SUM([2018-07-14]) AS [2018-07-14],
SUM([2018-07-15]) AS [2018-07-15],
SUM([2018-07-16]) AS [2018-07-16],
SUM(Total) AS Total
FROM @tbl
GROUP BY ROLLUP (City);
City 2018-07-14 2018-07-15 2018-07-16 Total
Ghatkopar 10 1 1 12
Maharashtra 0 4 1 5
Satara 3 9 1 13
NULL 13 14 3 30
DECLARE @D1 VARCHAR(10) = FORMAT(GETDATE() - 2, 'yyyy-MM-dd')
DECLARE @D2 VARCHAR(10) = FORMAT(GETDATE() - 1, 'yyyy-MM-dd')
DECLARE @D3 VARCHAR(10) = FORMAT(GETDATE(), 'yyyy-MM-dd')
DECLARE @SQL NVARCHAR(MAX)
SELECT @SQL = '
SELECT City, SUM([' + @D1 + ']) AS [' + @D1 + '],
SUM([' + @D2 + ']) AS [' + @D2 + '],
SUM([' + @D3 + ']) AS [' + @D3 + '],
SUM([' + @D1 + '] + [' + @D2 + '] + [' + @D3 + ']) AS Total
FROM tbl
GROUP BY ROLLUP (City);'
EXEC sp_executesql @SQL