#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)