如何在某些条件下在SQL查询中执行数学运算?

时间:2015-08-12 15:46:07

标签: sql if-statement structure

我有几张桌子,我正在查询,物品移动和价格。有三种价格水平,正常价格,降价和销售价格。我试图获得降价(在销售时销售的商品价格减去常规或降价)。我的商品移动表仅包含销售单位的价格和该商品的价格类型。我目前只选择按销售价格类型销售的商品。接下来我必须找出该商品是定期还是降价,我通过查看价格表来确定。价格表有我的正常价格和降价,如果降价是零,那么它目前没有减少。

如何告诉SQL我想要一个名为" markdown"的列。这基本上是(IF price.tprprice not null AND price.tprenddate> @StartDate给我列(price.baseprice - price.tprprice)* itemmovement.qtysold AS markdown ELSE给我列(price.baseprice - itemmovement.price)* itemmovement.qtysold AS markdown)

我需要将每行上执行的每个计算的结果返回到标题为Markdown的同一列中。

有谁能告诉我这个查询应该如何构建?

1 个答案:

答案 0 :(得分:2)

case when price.tprprice is not null AND price.tprenddate > @StartDate
     then (price.baseprice - price.tprprice) * itemmovement.qtysold 
else (price.baseprice - itemmovement.price) * itemmovement.qtysold 
end as markdown

您可以使用适用于大多数数据库的case语句来执行此操作。