2013-11-15 481 views
-2

我想合併我的2 If語句的條件結果。首先,如果語句結果只顯示0結果,則在第二個語句結果中,其中一個必須大於0 ...我想要做的是保留第二個條件,如果狀態像我的代碼那樣首先修改...Where子句中的多個If語句

我的代碼

If (Inventory) <> 0 Then 
    If Apple = "" And Banana = "" Then 
     strSQL = strSQL & " AND (myApple = 0 AND myBanana = 0) + (myApple <> 0 OR myBanana <> 0)" 
    End If 
End If 

//首先

If (Inventory) <> 0 Then 
    If Apple = "" And Banana = "" Then 
     strSQL = strSQL & " AND (myApple = 0 AND myBanana = 0)" 
    End If 
End If 

第一結果:

myApple myBanana 
0  0 
0  0 
continue... 

//第二

If int(Inventory) <> -1 Then  
    If Apple = "" And Banana = "" Then 
     strSQL = strSQL & " AND (myApple <> 0 OR myBanana <> 0)" 
    End If 
End If 

第二結果:

myApple myBanana 
    0  5 
    1  0 
    continue... 

,我想看到的結果是:

myApple myBanana 
    0  0 
    0  0 
    0  5 
    1  0 
    6  0 
    0  0 
    continue..... 
+3

這不是C .. ! – alk

+1

爲什麼不刪除你的條件呢?然後你會得到你想要的。 – Alex

+0

請不要以這種方式刪除您的問題的內容;那些已經回答你的問題的人不公平。 –

回答

2

嘗試使用這一招

If Apple = "" And Banana = "" Then 
    strSQL = strSQL & " AND (1 = " + If (Inventory) <> 0 Then "1" else "0" + " AND (myApple = 0 AND myBanana = 0))"  
    strSQL = strSQL & " AND (1 = " + If (Inventory) <> -1 Then "1" else "0" + " AND(myApple <> 0 OR myBanana <> 0))" 
End If 

所以得到sqlwhere庫存= -1

AND (1 = 1 AND (myApple = 0 AND myBanana = 0)) AND (1 = 0 AND (myApple <> 0 OR myBanana <> 0)) 
+0

你能解釋一下這是幹什麼的嗎? – user2611251

+0

好的工作肯達.. –

+0

你有2個條件,這取決於價值清單,不是oposit。因此,如果庫存爲0,則只能使用第二個條件,如果庫存爲-1,則只能使用第一個條件,如果庫存是其他條件,則可以使用這兩個條件或不使用任何條件。所以我選擇在一個sql查詢中使用兩個條件,並添加另一個條件1 = 1 resp。 1 = 0。它由Invenotry值進行參數化。 – MartinB