RowWise和; ColumnWise MYSQL中的输出表总数

时间:2013-06-05 09:02:36

标签: mysql

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

因为我有记录集表,现在我关心的是如何获得TOTAL rowwise& ColumnWise&在新的行中展示它分别为新栏目。 下图将显示,我期望的输出

enter image description here

2 个答案:

答案 0 :(得分: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 演示

答案 1 :(得分: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 |