Mysql 尝试删除带有IF语句和计算列的查询中的记录

Mysql 尝试删除带有IF语句和计算列的查询中的记录,mysql,database,scripting,Mysql,Database,Scripting,我得到了以下问题: 当需要提取捐赠时,运输成本会使捐赠价值降低10%。写一个SELECT语句,其中包括捐赠者的名字和姓氏、捐赠描述、捐赠价值和一个名为actual_value的计算列,该列显示捐赠价值减去10%的交通费。结果应该只显示必须接受的捐赠 我可以得到正确的计算结果,但问题是,在这种情况下,只返回必须提取的捐赠值将是1 我尝试了一个IF函数和一个子查询 USE donations; SELECT donor_first, donor_last, donation_desc, donati

我得到了以下问题:

当需要提取捐赠时,运输成本会使捐赠价值降低10%。写一个SELECT语句,其中包括捐赠者的名字和姓氏、捐赠描述、捐赠价值和一个名为actual_value的计算列,该列显示捐赠价值减去10%的交通费。结果应该只显示必须接受的捐赠

我可以得到正确的计算结果,但问题是,在这种情况下,只返回必须提取的捐赠值将是1

我尝试了一个IF函数和一个子查询

USE donations;
SELECT donor_first, donor_last, donation_desc, donation_value, IF(pickup_req = 0, donation_value - (donation_value * 0.10), donation_value) AS actual_value
FROM donor d JOIN donation do ON d.donor_id = do.donor_id
当它返回时,它应该只显示拾取行中的值,即1,当前它显示所有1和0


这帮助我思考,尽管这不是答案。我想得太多了。答案是:使用捐赠;首先选择捐赠者,最后选择捐赠者,捐赠描述,捐赠价值,如果拾取要求=1,捐赠价值-捐赠价值*0.10,捐赠价值作为捐赠者的实际价值d加入捐赠d上的捐赠do。捐赠者id=do.捐赠者id,其中拾取要求=1I以前从未见过合并函数,这很有趣,它也可以找到这些值,但它们并不明显
select donor_first, donor_last, donation_desc, donation_value, donation_value - (donation_value * 0.10) as actual_value 
from donor d 
join donation do on d.donor_id = do.donor_id
where coalesce(d.pickup_req, 0) > 0