【问题标题】:MySQL: Where price < 50, sum(price +14)MySQL:其中价格 < 50,总和(价格 +14)
【发布时间】:2017-08-21 15:28:30
【问题描述】:

我正在构建一个查询,如果商品价格低于 50 美元,它会自动将运费添加到商品价格中,如果原始价格超过 50 美元,则会自动将运费添加到商品价格中。我已经做了一些实验使用 CASE、IF 和 SUM,但我不确定哪个是我需要的。

首字母:

Stock_Number    Line Part_Number Q  T   Price
AAB_1074901519, AAB, 1074901519, 1, AM, 120.67
AAB_1074908119, AAB, 1074908119, 1, AM, 108.29
AAB_1264907619, AAB, 1264907619, 1, AM, 364.49
AAB_1294908319, AAB, 1294908319, 1, AM, 368.97
AAB_1378254,    AAB, 1378254,    1, AM, 36.18

期望:

AAB_1074901519, AAB, 1074901519, 1, AM, 144.67   //Because price > 50, +22
AAB_1074908119, AAB, 1074908119, 1, AM, 130.29   //Because price > 50, +22
AAB_1264907619, AAB, 1264907619, 1, AM, 386.49   //Because price > 50, +22
AAB_1294908319, AAB, 1294908319, 1, AM, 390.97   //Because price > 50, +22
AAB_1378254,    AAB, 1378254,    1, AM, 50.18   //Because price < 50, +14

Anil 解决了我的问题。感谢大家的努力!

您可以使用 case 语句。这是查询。替换表名 和列名。

选择价格

【问题讨论】:

  • 首先将您的表格共享为文本表格,并将您的预期结果也共享为文本表格
  • 向我们展示你的疲倦。
  • 带有case语句的子查询,别名case为price_s,外部查询sum(price_s)
  • 另外,这听起来根本不是一个好主意。

标签: mysql if-statement sum case


【解决方案1】:

您可以使用 case 语句。这是查询。替换表名和列名。

select case when price < 50 then price + shipping cost else price end from your table;

【讨论】:

  • 太棒了!你解决了我的问题。非常感谢。我会将该语法用于我想做的其他验证!
【解决方案2】:

您可以使用此更新:

update table set price= case
when price<50 then price+shipping_fee1
else price+shipping_fee2 
end;

【讨论】:

    猜你喜欢
    • 2013-02-22
    • 2023-03-15
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    相关资源
    最近更新 更多