不允许使用多级GROUP BY子句

时间:2016-10-26 08:54:43

标签: sql ms-access ms-access-2010

我有以下CrossTab查询

TRANSFORM Max(VWDRSSTA.DATUM_ZEIT) AS MaxOfDATUM_ZEIT
SELECT VWDRSSTA.ANTRAGSNUMMER
,IIF(VWDRSSTA.SYSTEM = 'VS', (
        SELECT (Max(VWDRSSTA.DUNKEL)) AS d
        FROM VWDRSSTA
        ), NULL) AS Dunkel
,Max(VWDRSSTA.VERS_NR_INT) AS Versicherungsnummer
 FROM VWDRSSTA
 INNER JOIN V_NAMES ON (VWDRSSTA.SYSTEM = V_NAMES.SYSTEM_CODE)
AND (VWDRSSTA.EREIGNIS = V_NAMES.EREIGNIS)
GROUP BY VWDRSSTA.ANTRAGSNUMMER
ORDER BY VWDRSSTA.ANTRAGSNUMMER
PIVOT V_NAMES.MAPPED_NAME;

给出了错误"子查询中不允许使用多级GROUP BY子句"。我的代码在哪里错了?

2 个答案:

答案 0 :(得分:0)

尝试VWDRSSTA.SYSTEM子句中的GROUP BY

应该这样做。

编辑以详细说明我的回答:

TRANSFORM Max(VWDRSSTA.DATUM_ZEIT) AS MaxOfDATUM_ZEIT
SELECT VWDRSSTA.ANTRAGSNUMMER
    ,IIF(VWDRSSTA.SYSTEM = 'VS', (
            SELECT (Max(VWDRSSTA.DUNKEL)) AS d
            FROM VWDRSSTA
            ), NULL) AS Dunkel
    ,Max(VWDRSSTA.VERS_NR_INT) AS Versicherungsnummer
FROM VWDRSSTA
INNER JOIN V_NAMES ON (VWDRSSTA.SYSTEM = V_NAMES.SYSTEM_CODE)
    AND (VWDRSSTA.EREIGNIS = V_NAMES.EREIGNIS)
GROUP BY VWDRSSTA.ANTRAGSNUMMER, VWDRSSTA.SYSTEM
ORDER BY VWDRSSTA.ANTRAGSNUMMER
PIVOT V_NAMES.MAPPED_NAME;

答案 1 :(得分:0)

您的交叉表查询包含辅助“聚合”SQL,这在ACCESS交叉表查询中是不允许的。

更改Select max(vwdrssta.dunkel) ... part to DMax("dunkel", "vwdrssta")将删除该错误消息。