簡體   English   中英

在On語句中使用If語句

[英]Using If statement in On statement

我按客戶/賬號提出交易摘要。 事務有兩個可能的組件,硬件或軟件,我希望用戶獲得具有帳戶總數的演示文稿,或者單獨提供的硬件和軟件總計。

目前,提供給用戶的唯一選擇是單獨獲取它們。 為了實現這一點,我有一個帶有連接的子查詢,其on語句當前是讀取的

on tb3.account_nbr=tb4.account_nbr and tb3.trans_type=tb4.trans_type

取消對該語句的trans_type評估將返回帳戶上所有事務的總計。

我在表單上添加了一個復選框,表示他們偏好分別獲取總計或兩個組件。 結果變量(@get_trans)值為“1”表示為按事務類型單獨的總計,或“0”表示所有事務類型的總和並顯示為單個總計。

有意義的是,我可以將上面的內容更改為解決方案的if語句,但它無法正常工作

on tb3.account_nbr=tb4.account_nbr and if(@get_trans=1,tb3.trans_type=tb4.trans_type,"")

任何幫助,將不勝感激。 謝謝,吉姆

問題可能是else子句。 在此上下文中,空字符串將計算為0 - 並將其視為false。 這使得整個on情況是假的。

但是,您可以在不使用if情況下編寫邏輯:

on tb3.account_nbr = tb4.account_nbr and 
   (@get_trans <> 1 or tb3.trans_type = tb4.trans_type)

注意:此版本假定@get_trans不采用NULL值。 這很容易處理:

on tb3.account_nbr = tb4.account_nbr and 
   (@get_trans <> 1 or @get_trans is null or tb3.trans_type = tb4.trans_type)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM