0

我们正在开发 MYSQL 、 ASP.Net 应用程序。我正在使用 TempTable 来存储我的存储过程的输出。

由于我有记录集表,现在我关心的是如何获取 TOTAL rowwise 和 ColumnWise 并分别在新行和新列中显示它。下图将显示,我期望什么输出

在此处输入图像描述

4

2 回答 2

0

尝试

SELECT c1, c2, c3, c4, c5, c1+c2+c3+c4+c5 c6
  FROM table1
UNION ALL
SELECT SUM(c1), SUM(c2), SUM(c3), SUM(c4), SUM(c5), SUM(c1+c2+c3+c4+c5)
  FROM table1

输出:

|   C1 |  C2 |   C3 | C4 | C5 |    C6 |
---------------------------------------
|   45 | 416 |    0 |  0 |  0 |   461 |
| 7887 |   0 |    0 |  0 |  0 |  7887 |
|  444 |   0 | 1628 |  0 |  0 |  2072 |
| 8376 | 416 | 1628 |  0 |  0 | 10420 |

这是SQLFiddle演示

于 2013-06-05T10:38:14.770 回答
0

您可以使用GROUP BY WITH ROLLUP获取总计的行,然后将列相加以获得总计的列:

select 
  coalesce(col1, 'Total') col1, 
  sum(col2) col2, 
  sum(col3) col3,
  sum(col4) col4,
  sum(col5) col5,
  sum(col1 + col2 + col3 + col4 + col5) Total
from yt
group by col1 with rollup;

请参阅SQL Fiddle with Demo。结果:

|   COL1 | COL2 | COL3 | COL4 | COL5 | TOTAL |
----------------------------------------------
| INCust |   45 |  416 |    0 |    0 |   461 |
|   none |  444 |    0 | 1628 |    0 |  2072 |
| venddd | 7887 |    0 |    0 |    0 |  7887 |
|  Total | 8376 |  416 | 1628 |    0 | 10420 |
于 2013-06-05T10:51:03.897 回答