1

我需要MySQL 表上的SUBTOTALGRAN TOTAL 。

对于 MySQL 指南,我需要使用WITH ROLLUP语法。

我试过这个 SQL 查询但没有成功:

SELECT
    xName,
    xCode,
    sCode,
    FBB88
FROM
    `doTable`
GROUP BY
    xCode,
    FBB88 WITH ROLLUP;

输出:

+-----------+-------+--------+-------+
| xName     | xCode | sCode  | FBB88 |
+-----------+-------+--------+-------+
| AAAAAAAA  | XX4A  | XX4AU1 |     1 |
| AAAAAAAA  | XX4A  | XX4AU2 |     4 |
| BBBBBBBBB | XX4B  | XX4BU1 |     2 |
| BBBBBBBBB | XX4B  | XX4BU2 |     5 |
+-----------+-------+--------+-------+
4 rows in set

期望的输出:

+-----------+-------+--------+-------+
| xName     | xCode | sCode  | FBB88 |
+-----------+-------+--------+-------+
| AAAAAAAA  | XX4A  | XX4AU1 |     1 |
| AAAAAAAA  | XX4A  | XX4AU2 |     4 |
| AAAAAAAA  | XX4A  | SUBTOT |     5 |
| BBBBBBBBB | XX4B  | XX4BU1 |     2 |
| BBBBBBBBB | XX4B  | XX4BU2 |     5 |
| BBBBBBBBB | XX4B  | SUBTOT |     7 |
|           |       | GRATOT |    12 |
+-----------+-------+--------+-------+
4

1 回答 1

3

您的 Group By 不符合 ANSI SQL,并且也会在最新版本的 MySQL 中引发错误。子句中的任何非聚合列/表达式也Select必须在子句中指定Group By

请尝试以下操作:

SELECT
    xName,
    xCode,
    sCode,
    SUM(FBB88)
FROM
    `doTable`
GROUP BY
    xCode, 
    xCode, 
    sCode 
  WITH ROLLUP;
于 2018-10-30T14:45:03.747 回答