php-SQL:根据条件,根据不同的字段选择AND Group结果


php SQL: Select AND Group results according to different fields, depending on criteria

我正在创建一个表来显示许多不同项目的摘要,其中一些是按国家/地区的,另一些是按地区的(一个国家有多个地区(,但只有两个国家/地区有多个区域(其中ADMIN0ID=23或24(。。。因此,在这些情况下,我需要基于ADMIN1来选择和分组结果。源表的层次结构是ADMIN0ID、ADMIN0、ADMIN1ID、ADMIN1、ADMIN2ID、ADMIN 2,其中以"ID"结尾的任何内容都是数字,但不带"ID"的相应字段是文本。以下是我在没有任何摘要数据的情况下获取项目名称的初步尝试:

SELECT 
(CASE WHEN (ADMINOID=24 OR ADMIN0ID=23) THEN ADMIN1 ELSE ADMIN0) AS Project
FROM GTMP_PROGRESS
GROUP BY
(CASE WHEN (ADMIN0ID=24 OR ADMIN0ID=23) THEN ADMIN 1 ELSE ADMIN0)

请帮帮我!

这是您想要的查询吗?

SELECT (CASE WHEN ADMIN0ID in (23, 24) THEN ADMIN1 ELSE ADMIN0 END) AS Project
FROM GTMP_PROGRESS
GROUP BY (CASE WHEN ADMIN0ID in (23, 24) THEN ADMIN1 ELSE ADMIN0 END);

如果是这样的话,主要问题是case语句中缺少end

我猜您在"未知列"或其他方面遇到了一些错误。将来,当你问一个问题时,具体说明你得到的任何错误或错误的查询结果,以及这与你期望得到的结果有何不同,会很有帮助。

我在你的查询中至少看到了这个问题:

零(0(与大写字母"O"不同。你在一个应该有0的地方使用了"O"。

... CASE WHEN (ADMINOID=24 OR ADMIN0ID=23 ...
                    ^              ^
                    O              0