尝试将MS Access查询转换为SQL Server视图但收到错误

时间:2015-12-15 20:46:08

标签: sql sql-server ms-access

很难为我手动转换此代码。

SELECT 
    Birlesmis_Data_Urun.[Kampanya Adı], DepolarTbl.[BM Adı], 
    DepolarTbl.[Müşteri Adı], DepolarTbl.[BM Adı], 
    Birlesmis_Data_Urun.KOD, Birlesmis_Data_Urun.[DEPO ADI], 
    Birlesmis_Data_Urun.[ECZANE GLN KODU], 
    Birlesmis_Data_Urun.[ECZANE ADI], 
    Birlesmis_Data_Urun.[Düzeltilmiş Ürün Adı] AS [Ürün Adı], 
    Birlesmis_Data_Urun.[SATIŞ ADET], 
    IIf(IsNull([KampanyaDetayTbl].[KMMF]), IIf(IsNull([KampanyaDetayTbl]![BMMF]), [Birlesmis_Data_Urun].[MF ADET], [KampanyaDetayTbl]![BMMF]),[KampanyaDetayTbl]![KMMF]) AS SonucMF, 
    Birlesmis_Data_Urun.[MF ADET] AS [Istenen MF], 
    IIf([SonucMF]=[Istenen MF],"Yok","Var") AS Duzenleme, 
    [Fiyat] * ([Istenen MF] - [SonucMF]) AS Tutar
FROM 
    ((Birlesmis_Data_Urun 
LEFT JOIN 
    KampanyaDetayTbl ON Birlesmis_Data_Urun.ID = KampanyaDetayTbl.MFID)  
INNER JOIN 
    DepolarTbl ON Birlesmis_Data_Urun.KOD = DepolarTbl.KOD) 
LEFT JOIN 
    UrunFiyatTbl ON (Birlesmis_Data_Urun.[Düzeltilmiş Ürün Adı] = UrunFiyatTbl.UrunAdi) AND (Birlesmis_Data_Urun.[Kampanya Adı] = UrunFiyatTbl.KampanyaAdi);

我做的事情:

  1. !替换为.
  2. IsNull替换为= ' '例如IIf(IsNull([KampanyaDetayTbl]![BMMF]),) - > IIf([KampanyaDetayTbl].[BMMF]=' ',)
  3. "替换为'
  4. 删除;
  5. 我收到了这个错误

      

    Msg 207,Level 16,State 1,Line 1
      列名称'SonucMF'无效。
      消息207,级别16,状态1,行1   列名称'Istenen MF'无效。
      消息207,级别16,状态1,行1   列名称'Istenen MF'无效。
      消息207,级别16,状态1,行1   列名称'SonucMF'无效。

    如何将此查询转换为SQL Server视图?

2 个答案:

答案 0 :(得分:0)

好的,我用[tablename]。[columnname]更改了referance别名并且它有效。

答案 1 :(得分:0)

替换 iif ( condition, value_if_true, value_if_false )

Case when condition then value_if_true else value_if_false end