2012-10-10 25 views
0

任何人都可以提出的語法下面的IF語句,如果在Excel statment - 女士Access數據庫

IIf 
    ( Cur_Insert_Cost, 
    Cur_Insert_Cost/Cur_Insert_Edges, 
    Cur_Regrindable_Cost/(Cur_Regrinds_Possible+1) 
    ) AS Cur_Cost_Edge_Regrind 

上面的線是從Excel報表使用MS-Access數據庫

我沒有了解條件部分.... !!!

Cur_Insert_Cost,Cur_Insert_Edges,Cur_Regrindable_Cost ...等是列名

+1

我假設CUR_Insert_Cost是一個布爾值(是/否)字段? – JohnFx

+0

@johnfx不這麼認爲,它可能是一個貨幣領域(檢查IIF的真實部分) – Jacob

+0

是它的貨幣字段,數據類型是貨幣... – Warrior

回答

4

IIF是一個三元運算符。它是由以逗號

iif(expression, truepart, falsepart) 

分開你的情況三個部分它意味着:

if Cur_Insert_Cost is not zero then 
    return the result of the expression Cur_Insert_Cost/Cur_Insert_Edges 
else 
    return the result of the expression Cur_Regrindable_Cost/(Cur_Regrinds_Possible+1) 

結果將在查詢被命名爲Cur_Cost_Edge_Regrind

+0

也記住,不像'if..then .. else..end',如果你使用'iif',那麼'truepart'和'falsepart'將被評估(並且被丟棄) – paul

+0

Steve試圖在mysql中擁有上面的語句,我應該檢查條件, Cur_Insert_Cost> 0)還是我需要檢查空...?如果(Cur_Insert_Cost == null)||如果(Cur_Insert_Cost <> null) – Warrior

+0

不確定MySql,但是如果你的列'Cur_Insert_Cost'可以爲null,那麼你應該檢查這種情況IF(((Cur_Insert_Cost爲空)或(Cur_Insert_Cost> 0)),... ....)' – Steve

0

的測試,如果Cur_Insert_Cost 是被視爲空的虛假或任何訪問被視爲虛假。

因此,它可能意味着 Cur_Insert_Cost = NULL,0,「」,假的(我想我忘了一些替代品)

正如你所看到的第一部分,採用的是和IIRC Cur_Insert_Cost應用於NULL會給出一個exceptoin(但是從我的記憶只是)

0

聲明說,Cur_Cost_Edge_Regrind列的值是:

  • Cur_Insert_Cost/Cur_Insert_Edges如果Cur_Insert_Cost是TRU結果E(或1)
  • Cur_Regrindable_Cost/(Cur_Regrinds_Possible+1)如果Cur_Insert_Cost結果爲FALSE(或0)

希望幫助...