У меня есть следующий перекрестный код запроса для следующей таблицы (VWDRSSTA)Крест Вкладка Запроса с фильтрованным максимальным значением
SYSTEM EREIGNIS DATUM_ZEIT ANTRAGSNUMMER DUNKEL
VS POL_AN 1.1.2016 123 1
VS ANL_SW 1.2.2016 123 0
ZW EIN_ED 1.3.2016 123 0
ZW AUS_ED 1.4.2016 222 1
VS POL_AN 1.5.2016 222 0
VS ANL_SW 1.6.2016 222 0
Перекрестного код запроса
TRANSFORM Max(VWDRSSTA.DATUM_ZEIT) AS MaxOfDATUM_ZEIT
SELECT VWDRSSTA.ANTRAGSNUMMER,
Max(VWDRSSTA.DUNKEL) AS Dunkel,
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;
, где V_Names
представляет собой таблицу поиска с имена для отображения.
, который дает мне результат
ANTRAGSNUMMER DUNKEL Eingang Ausgang Schwebe Policierung
123 1 1.3.2016 1.2.2016 1.1.2016
222 1 1.4.2016 1.6.2016 1.5.2016
Так как приведенный выше код использует Max(VWDRSSTA.DUNKEL) AS Dunkel
я получаю максимум как 1 для обоих Antragsnummer
где я хочу значение DUNKEL
быть максимум VS в области системы. Технически я хочу второй рекорд с Antragsnummer
222 будет показано, как
222 0 1.4.2016 1.6.2016 1.5.2016
До сих пор я заменил Max(VWDRSSTA.DUNKEL) AS Dunkel
с
DMax("DUNKEL","VWDRSSTA","SYSTEM ='VS'") AS Dunkel
и
IF(VWDRSSTA.SYSTEM = 'VS', (
SELECT (Max(VWDRSSTA.DUNKEL)) AS d
FROM VWDRSSTA
), NULL) AS Dunkel
, но оба они не работайте, как ожидалось. Для последнего, который я получил следующее сообщение об ошибке
Многоуровневых предложениях GROUP BY не допускаются в подзапросе
И когда я использую Dmax я получаю только 1 значение, которое является максимальным.
Как достичь вышеуказанного результата?