2012-09-03 105 views
1

使用 我試圖建立一個SP在FB 2.5,看起來像: 火鳥SQL中<where>

where 
    (
     (kunde between :kdvon and :kdbis) 
     and 
      (AdrGrp between :AdrGrpvon and :AdrGrpbis) 
     and 
      (auftragstyp between :AuftrTypVon and :AuftrTypBis) 
     and 
      (Status between :statusvon and :statusbis) 
     and 
     IF LFDNR <> 0 THEN (LFDNUMMER = :LFDNR) 
     IF BESTELLTAG <> 0 then (bestelldatum = :BESTELLTAG) 
    ) 

它運作良好,直到if語句插入。 之後,我收到消息 SQL錯誤代碼= -104。 令牌未知 - 第156行,第14列。 LFDNR。

IF條件定義爲輸入參數。使用冒號:將它們標記爲參數無效。

問題 是否可以在這裏使用「Where」裏面的「If」? 如何使用condidional params?

TIA 羅爾夫

回答

2

試試這個:

... 
AND (LFNDR = 0 OR LFDNUMMER = :LFDNR) 
AND (BESTELLTAG = 0 OR bestelldatum = :BESTELLTAG) 

(我不知道是否LFNDRBESTELLTAG= 0子句中的參數/變量或列 - 如果它們的參數(相同作爲右手部分),你應該用':'來標記它們)

+0

我必須刪除使用的標準值:
和(::LFDNR爲空或LFDNUMMER =:LFDNR)
工作正常 。非常感謝你。 –

+0

@ user1543973對不起? –

+0

0或''值沒有正確輸出(有另一個錯誤)。由於它們無論如何都被設置爲「無」,我刪除了標準值。所以這些參數有空值(如果沒有值傳遞),我可以測試null或值。這工作正常。 –