我想知道是否有任何方法可以在WHERE
结果是1
它这样做以及0
它是否这样做。作为一个IF
.
我遇到的问题是我想将价格附加到文件中。但其中一个代码在price_code = 1
. 因此,我删除了结果行,因为它不符合条件。
从评论中解救出来:如果我查找price_code = 1
时找不到值,那么我应该去查找表中的 Cost costs
, column cost_price
。
我留下一个总结:
SQL 脚本:
SQL
SELECT a.item_code, a.trx_type, a.trx_num, a.qty, b.list_price
FROM moves AS a
INNER JOIN items_price AS b
ON a.item_code = b.item_code
INNER JOIN costs AS c
ON a.item_code = c.item_code
WHERE b.price_code = '1'
ORDER BY a.item_code DESC;
在该子句
WHERE
中,您可以使用任何流控制功能,但我认为您不需要它。最好做一个LEFT JOIN
:正如我通过您的解释所理解的那样,您需要显示表的数据和表
moves
的列list_price
(items_price
如果它price_code
是 1,如果是 2,则显示表的列cost_price
,类似的costs
东西?如果是这样,试试这个:
如果这不是您所需要的,请修复您的示例,甚至
trx_num
不匹配,以便社区可以更好更快地帮助您。如果我正确理解了您的问题,您需要以下内容:
items_price
显示items_price.price_code = 1
值为的项目记录items_price.list_price
。costs.cost_price
。在这种情况下,我使用
LEFT JOIN
通过填充NULL
没有关联记录的链接表的字段来链接表。通过这样做,当
items_price
与给定条件的表没有关系时,items_price.list_price
它将是有效NULL
的。使用 a
IF
我们可以检测到这种情况并显示这种情况下的值costs.cost_price
:您在此链接上有一个在线示例。
当我说在您的示例中数据错误时,我的意思是文章的情况:和中
a
的值是,但是您输入了。items_price.list_price
costs.cost_price
7
4