У меня есть SQL-оператор, который включает в себя переключатель, я хочу выполнить на MS-Access-2010.
SQL:
SELECT
TABLE_1.ID,
SWITCH
(
(TABLE_3.ID IN (7,8) AND TABLE_1.SOME_COLUMN = 2), (SELECT MAX(TABLE_4.ID) FROM TABLE_4 WHERE TABLE_4.TABLE_2_ID = TABLE_2.ID),
(SELECT MIN(TABLE_4.SOME_COLUMN) FROM TABLE_4 WHERE TABLE_4.TBL_2_ID = TABLE_1.TBL_2_ID)
)AS SOME_ALIAS
FROM
((TABLE_1
LEFT JOIN TABLE_2 ON TABLE_1.TABLE_2_ID = TABLE_2.ID)
LEFT JOIN TABLE_3 ON TABLE_2.TABLE_3_ID = TABLE_3.ID)
В моем результате столбец some_column всегда равен #Function!
Если я не использую оператор switch и добавляю подвыборы из двух случаев как обычные поля selected следующим образом:
SELECT
TABLE_1.ID,
(SELECT MAX(TABLE_4.ID) FROM TABLE_4 WHERE TABLE_4.TABLE_2_ID = TABLE_2.ID) AS SOME_COLUMN_1,
(SELECT MIN(TABLE_4.SOME_COLUMN) FROM TABLE_4 WHERE TABLE_4.TBL_2_ID = TABLE_1.TBL_2_ID) AS SOME_COLUMN_2
FROM
((TABLE_1
LEFT JOIN TABLE_2 ON TABLE_1.TABLE_2_ID = TABLE_2.ID)
LEFT JOIN TABLE_3 ON TABLE_2.TABLE_3_ID = TABLE_3.ID)
У меня нет проблем (Есть только пара строк, в которых нет значений внутри SOME_COLUMN_1 И SOME_COLUMN_2).
Что вызывает здесь результат #FUNCTION!
? 1015 *