2013-11-15 2 views
-2

Я хочу объединить результат условия моих утверждений 2 If. Сначала, если результат выражения показывает только оба результата 0, во втором случае, если результат выражения один из них должен быть больше 0 ... Хотелось бы, чтобы я сделал это. Осталось второе условие, как оно есть, и сначала измените, если statament как мой код ...Множественные операторы If внутри Where where

мой код

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 для Inventory = -1

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

Не могли бы вы объяснить, что это делает? – user2611251

+0

хорошая работа Kenda .. –

+0

u есть 2 условия, которые зависят от стоимости Инвентаризация и не oposit. Поэтому, если Inventory равен 0, вы можете использовать только второстепенные условия, если Inventory равен -1, вы можете использовать только первое условие, и если Inventory is else else, вы можете использовать оба условия или ничего. Поэтому я выбираю использование обоих условий в одном запросе sql и добавляю другое условие 1 = 1 соответственно. 1 = 0. Он параметризуется значением Invenotry. – MartinB