繁体   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