【问题标题】:Converting MS Access IIF to SQL Server CASE statement将 MS Access IIF 转换为 SQL Server CASE 语句
【发布时间】:2020-11-23 17:41:34
【问题描述】:

我正在尝试将 MS Access 应用程序转换为 SQL Server。我收到一个错误

'as' 附近的语法不正确

尝试转换时:

注册销售:

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”附近的语法不正确

')' 附近的语法不正确

我做错了什么?

【问题讨论】:

    标签: sql sql-server ms-access


    【解决方案1】:

    如果我按照正确的逻辑是:

    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)
    

    【讨论】:

    • 0 谢谢! SUM(当 P.gm_cd in(1105, 2123, 2124, 2150, 2152, 2191, 2192, 5143, 5145, 5146, 5245, 5253 )THEN T.SING_IND * P.GRS_AMN else 0)) 作为 RegSales,为什么是我仍然收到语法错误“关键字'AS'附近的语法错误?
    • 哎呀!忘记END
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多