Переключается ли(Выберите) Работает между ПРЕОБРАЗОВАНИЕМ И ВЫБОРОМ?

#sql #ms-access

Вопрос:

Я пытаюсь добавить a Switch между a Transform и a Select , но это приводит к следующей ошибке.

Предложение многоуровневой ГРУППЫ ПО не допускается в подзапросе

Ниже приведен пример моего SQL-запроса

 TRANSFORM SUM(Rate* SWITCH(Name = 'Name1',(SELECT sum(MktValue)/(select sum(MktValue) FROM Table2 WHERE Portefeuille IN ( 'Name1' , 'Name2') AND LaDate = #27/10/2021#) FROM Table2 WHERE Name IN ( 'Name1') AND LaDate = #27/10/2021#),Name = 'Name2',0.75,true,0) SELECT Sector FROM Table1 WHERE Name IN ( 'Name1' , 'Name2') AND LaDate = #27/10/2021#" GROUP BY Sector Pivot Name   

Что я делаю не так?

Пожалуйста, обратите внимание, что Switch() это используется для расчета коэффициента. ( Значение MKT / Сумма(значение ALLMKT))

Приведенный ниже запрос работает

 TRANSFORM SUM(Rate * 0.33) SELECT Sector FROM Table1 WHERE Name IN ( 'Name1' , 'Name2') AND LaDate = #27/10/2021#" GROUP BY Sector Pivot Name   

Поскольку приведенный выше запрос работает нормально, я предполагаю, что моя проблема связана с SWITCH

Ответ №1:

Попробуйте с:

 TRANSFORM SUM(Rate * SWITCH(  Name = 'Name1',  (SELECT Sum(MktValue) FROM Table2 WHERE Name IN ('Name1') AND LaDate = #2021/10/27#) /   (SELECT Sum(MktValue) FROM Table2 WHERE Portefeuille IN ('Name1','Name2') AND LaDate = #2021/10/27#),  Name = 'Name2', 0.75,  True, 0)