如何从MySQL表生成报告

时间:2014-11-17 13:24:49

标签: php mysql grouping

我正在尝试从MySQL表生成报告。 但我无法想象如何去做。

我有一张这样的桌子。

+--------+------+------+
| Result | col1 | col2 |
+--------+------+------+
|      1 | A    | B    |
|      1 | C    | D    |
|      1 | E    | F    |
|      2 | G    | H    |
|      2 | I    | J    |
|      2 | K    | L    |
|      2 | M    | N    |
|      3 | O    | P    |
|      4 | Q    | R    |
|      4 | S    | T    |
+--------+------+------+

对此类数据进行分组的最佳方法是什么

Result       col1       col2       Total
________________________________________
  1                                  3
________________________________________
              A            B     
----------------------------------------
              C            D
----------------------------------------
              E            F
________________________________________
  2                                  4
________________________________________
             G            H
.
.
.
_________________________________________
Total                                  10 

我在考虑使用变量, 并存储第一个Result和foreach行 比较它直到它改变。 如果更改,则再次使用总计打印标题 的行。 并将变量的值设置为新的Result值。

迭代此查询生成的表。

SELECT
  A.result,
  A.col1,
  A.col2,
  (
    SELECT
        COUNT(Result)
    FROM
        Example AS B
    WHERE
        A.result = b.result
  ) AS Total
FROM
  Example AS A;

使用此表

+--------+------+------+-------+
| result | col1 | col2 | Total |
+--------+------+------+-------+
| 1      | A    | B    |     3 |
| 1      | C    | D    |     3 |
| 1      | E    | F    |     3 |
| 2      | G    | H    |     4 |
| 2      | I    | J    |     4 |
| 2      | K    | L    |     4 |
| 2      | M    | N    |     4 |
| 3      | O    | P    |     1 |
| 4      | Q    | R    |     2 |
| 4      | S    | T    |     2 |
+--------+------+------+-------+

有更好的方法吗?

提前致谢。

0 个答案:

没有答案