我想选择我在GROUP BY语句中使用的字段。 我的陈述是这样的
SELECT
(CASE WHEN A.kcu_id is null THEN A.id ELSE A.kcu_id END) as id,
...
GROUP BY
(CASE WHEN A.kcu_id is null THEN A.id ELSE A.kcu_id END),
performance_cabang.tahun
失败是因为
错误列" a.kcu_id"必须出现在GROUP BY子句中或用于聚合函数
我知道我必须在GROUP BY
中使用该列,但我使用的GROUP BY
语句使用CASE
函数。我必须使用CASE
功能,因为我不想将空ID分组
示例数据:
---------------------------------------
| Id | Name | Kcu_id | Price |
---------------------------------------
| 1 | Kcu_1 | | 2000 |
---------------------------------------
| 2 | Kcp_2 | 1 | 3000 |
---------------------------------------
我希望GROUP BY能够产生类似这样的结果
------------------------------
| Id | Name | Price |
------------------------------
| 1 | Kcu_1 | 5000 |
------------------------------
Fyi,Kcu_id是带有' id'的外键。在同一张表中
答案 0 :(得分:-1)
您不希望在“GroupBy”功能中使用案例功能。
例如:
选择 (例如,当A.kcu_id为空,那么A. A. ELSE A.kcu_id END)作为id, ... 通过...分组 A.kcu_id, performance_cabang.tahun
您只需要使用
组中的字段