Преобразование MS Access IIF в SQL оператор CASE сервера - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь преобразовать приложение MS Access в SQL Сервер. Я получаю сообщение об ошибке

неправильный синтаксис рядом с 'as'

при попытке преобразовать это:

RegSales:

Sum(LOTOSMIS_ACC_TYPE.sing_ind*LOTOSMIS_RET_DAILY.grs_amn*IIf(gm_cd In (1105,2123,2124,2150,2152,2191,2192,5143,5145,5146,5245,5253),Switch(LOTOSMIS_RET_DAILY.gm_var=1,0,True,1),0))

К этому

(SELECT CASE WHEN P.GM_VAR = 1 THEN 0 END)) AS RegSales,

Я получаю ошибку RegSales:

Sum(LOTOSMIS_ACC_TYPE.sing_ind*LOTOSMIS_RET_DAILY.grs_amn*IIf(gm_cd In (1105,2123,2124,2150,2152,2191,2192,5143,5145,5146,5245,5253),Switch(LOTOSMIS_RET_DAILY.gm_var=1,0,True,1),0))

Получение синтаксических ошибок

Неправильный синтаксис рядом со словом «as»

или

Неправильный синтаксис рядом с ')'

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

1 Ответ

3 голосов
/ 03 августа 2020

Если я правильно следую, лог c будет:

sum(case when gm_cd not in (1105, 2123, 2124, 2150, 2152, 2191, 2192, 5143, 5145, 5146, 5245, 5253)
         then LOTOSMIS_ACC_TYPE.sing_ind * LOTOSMIS_RET_DAILY.grs_amn
         else 0
    end)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...