gpt4 book ai didi

mysql;查询中的 if-else 条件和结果添加到新变量

转载 作者:行者123 更新时间:2023-11-30 00:31:16 24 4
gpt4 key购买 nike

我有两个表,即供应商和产品

供应商:
id
charge_by (枚举'订单','产品')
每产品额外费用
Fee_per_order

产品:
成本
厂商建议零售价
每产品费用
供应商 ID

我想查看所有 margin 小于100和大于50的产品
我的项目中计算 margin 的公式是:

If(Vendors.charges_by=='Order') then 
Vendor Fees = Products.Cost + Vendors.fee_per_order +
Vendors.extra_fee_per_product
ElSE IF(Vendors.charges_by=='Product') then Vendor Fees = Products.Cost +
Vendors.fee_per_product + Vendors.extra_fee_per_product

Gross Profit = Products.msrp - Vendor Fees

现在我们计算毛利润=

Margin = (Gross Profit / MSRP) * 100

我已经在列表中实现了搜索,我想在 MySQL 的一个查询中查看这些记录

最佳答案

给你:

SELECT prod_id, (((msrp + 0.0) - (
CASE
WHEN v.charges_by = 'Order'
THEN p.cost + v.fee_per_order + v.extra_fee_per_product
WHEN v.charges_by = 'Product'
THEN p.cost + p.fee_per_product + v.extra_fee_per_product
END
)) / msrp) * 100 AS Margin
FROM Vendors v
INNER JOIN Products p
ON v.id = p.vendor_id
HAVING Margin BETWEEN 10 AND 100

工作 fiddle :http://sqlfiddle.com/#!2/ddbaf2/8

这里的关键部分是msrp + 0.0,它已将计算视为浮点值而不是数字。

关于mysql;查询中的 if-else 条件和结果添加到新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com