【问题标题】:Select sum of 2 rows with condition per column选择每列条件的 2 行总和
【发布时间】:2017-07-10 02:11:17
【问题描述】:
TotalQty   AmountDiscounted       ReturnDescription
1.0000      12.50                   NULL
1.0000      12.50                   RETURN
1.0000      20.625                  NULL

我有一个这样的数据库设计!我想要做的是将行 TotalQtyAmountDiscounted 相乘并得到它们的总和..

到目前为止,我有一个这样的查询。

SELECT sum(TotalQty * AmountDiscounted) FROM FinishedSales

但是我在处理条件时遇到了问题。当ReturnDescription 的值为Return 时,我希望AmountDiscounted 列变为负数。所以基本上,最终答案将是 20.625

【问题讨论】:

  • 您可以使用案例或解码吗? select sum(TotalQty * AmountDiscounted * decode(ReturnDescription,'RETURN',-1,1))

标签: sql select sum


【解决方案1】:

只使用条件聚合:

SELECT SUM(CASE WHEN ReturnDescription = 'Return' THEN - TotalQty * AmountDiscounted
                ELSE TotalQty * AmountDiscounted
           END)
FROM FinishedSales;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 2023-03-09
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    相关资源
    最近更新 更多