表格数据计算 - 表格中间的求和

时间:2012-04-26 17:35:03

标签: php mysql model-view-controller view

考虑一个简单的查询:

SELECT id, date, hours FROM employees where id=10

以下结果集:

id | date     | hours
---------------------
1   4-19-2012   4
1   4-19-2012   2.5
1   4-19-2012   1
1   4-20-2012   2
1   4-20-2012   3

我正在显示结果集的典型HTML表格输出,但我想在当天结果的下面一行显示每日总和。

+--------------------------------------+
| David | 4-19-2012 | 4                |
|       | 4-19-2012 | 2.5              |
|       | 4-19-2012 | 1                |
|--------------------------------------|
| TOTAL ............  7.5              |
|--------------------------------------|
| David | 4-20-2012 | 2                |
|       | 4-20-2012 | 1                |
|--------------------------------------|
| TOTAL ............ 3                 |
|--------------------------------------|
| GRAND TOTAL ..........10.5           |
+--------------------------------------+

有哪些最佳方法可以解决这个问题?有很多选择。 Subquerying ...把​​PHP代码放在我的视图中......当然有一种赌博方式。

1 个答案:

答案 0 :(得分:1)

升级为答案

在MySQL中,您可以使用WITH ROLLUP修饰符在与GROUP BY分组的表格中添加额外的摘要行:

  

GROUP BY子句允许使用WITH ROLLUP修饰符,以便将额外的行添加到摘要输出中。这些行表示更高级别(或超级聚合)的摘要操作。因此ROLLUP使您能够使用单个查询在多个分析级别回答问题。例如,它可用于为OLAP(在线分析处理)操作提供支持。

使用您的查询,您可以执行以下操作:

SELECT id, date, SUM(hours) AS totalhours
FROM employees
WHERE id = 10
GROUP BY id, date, hours WITH ROLLUP