MYSQL结果取决于其他结果?情况什么时候?

时间:2014-10-13 08:35:06

标签: mysql

我希望有人可以帮我解决以下问题。

我有一个有两个价格的数据库。首先是正常价格和折扣价。 如果价格超过' 100'运费是免费的' 0'否则值为10.

折扣价并不总是有价值。因此,我需要首先弄清楚是否只有正常价格或折扣价格,并且根据结果我需要确定运费是否为10' 10或者' 0'。

我在语句时尝试了两种情况,但代码无效:

CASE WHEN D.product_override_price > 0.01 then round (D.product_override_price,2) else round (D.product_price * J.vat) when < 100 then 10.00 else 0.00 END as Shipping_Cost

我很乐意得到一些帮助或建议如何解决这个问题。

谢谢

2 个答案:

答案 0 :(得分:0)

使用两个CASE语句:

CASE
  WHEN (
    CASE
      WHEN D.product_override_price > 0.01
        THEN round (D.product_override_price,2)
      ELSE round (D.product_price * J.vat)
    END) < 100
  THEN 10.00
  ELSE 0.00
END as Shipping_Cost

答案 1 :(得分:-1)

when中错过左操作数有一个小错误。

CASE WHEN D.product_override_price > 0.01 then round (D.product_override_price,2) else round (D.product_price * J.vat) when < 100 then 10.00 else 0.00 END as Shipping_Cost

将其更改为:

修改

CASE WHEN (CASE WHEN D.product_override_price > 0.01 then round (D.product_override_price,2) else round (D.product_price * J.vat) END) < 100 then 10.00 else 0.00 END as Shipping_Cost

希望它能奏效。