【发布时间】:2016-10-27 02:07:09
【问题描述】:
我有以下 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 子句”。我的代码哪里出错了?
【问题讨论】:
-
代替 Select max(vwdrssta.dunkel) 你可以试试 DMax("dunkel", "vwdrssta") 吗?
-
我尝试使用 DMax("DUNKEL","VWDRSSTA","SYSTEM ='VS'") AS Dunk 并且它运行但它给了我所有记录的值 1。实际上,Dunkel 字段中只有 0 或 1。对应的字段有VS和ZW。我只想要所有 antragnummers 的 VS 最大值。所以它应该是 0 和 1。
-
Dmax 解决了你最初的问题?,我不明白你的第二个问题。如果您正在寻找“每个”antragsnummer 的最大 VS 值,您应该执行 Dmax("VS", "VWDRSSTA", "[ANTRAGSNUMMER]=outer_vwdrssta.ANTRAGSNUMMER")。将您的 从 vwdrssta 更改为从 vwdssta 作为 outer_vwdrssta
-
dmax 返回最大值,它不能同时返回 0 和 1,正如我所说,我不明白你的情况。也许用证据/可能的输出来改写你的问题!
-
另一个与您有相同问题的人可能会在阅读您的标题/帖子和答案时感到困惑。因此,合并问题不是一个好主意。保留原来的问题并提出一个新问题。这将对每个人都有帮助。
标签: sql ms-access ms-access-2010