首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按条件条件对列求和和分组

按条件条件对列求和和分组
EN

Stack Overflow用户
提问于 2020-02-03 23:32:55
回答 2查看 52关注 0票数 0

我有一个表,想通过一些标准来使用'Sum Functions‘。例如:

代码语言:javascript
运行
复制
ProductName     Type    Amount
-------------------------------
ProductA        2       10
ProductB        7       10
ProductA        8       10
ProductA        8       10
ProductC        7       10
ProductA        7       10
ProductA        3       10
ProductA        7       10
ProductB        3       10
ProductB        8       10

我想用这个公式对每个乘积进行分组和求和:

代码语言:javascript
运行
复制
Product Amount = Sum( (Type7 amount)+(Type8 amount)) - Sum( (Type2 amount)+(Type3 amount))

因此,我们示例的查询结果必须为:

代码语言:javascript
运行
复制
ProductName     Amount
-----------------------
ProductA        20
ProductB        10
ProductC        10

我有一个正在运行的查询:

代码语言:javascript
运行
复制
SELECT CL.DEFINITION_
    ,ST.TRCODE
    ,IT.NAME
    ,SUM(ST.AMOUNT) AS AMOUNT
    ,
FROM LG_060_CLCARD CL
    ,LG_060_ITEMS IT
    ,LG_060_04_STLINE ST
WHERE IT.LOGICALREF = ST.STOCKREF
    AND ST.CLIENTREF = CL.LOGICALREF
    AND ST.TRCODE IN (
        '2'
        ,'3'
        ,'7'
        ,'8'
        )
GROUP BY CL.DEFINITION_
    ,ST.TRCODE
    ,IT.NAME
    ,
ORDER BY CL.DEFINITION_
    ,ST.TRCODE
    ,IT.NAME

这个查询显示了一个类似于我们示例的第一个表单的表。我想将这个查询转换为我们示例的第二种形式。

在我们的示例中,ST.TRCODE是“类型”列。我如何按照上面提到的'Sum Function‘标准对产品进行分组?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-03 23:38:47

代码语言:javascript
运行
复制
select ProductName, 
  sum(case when type in ('7', '8') then 1 when type in ('2', '3') then -1 end * Amount) AS Amount
from MyTable
group by ProductName

结果

代码语言:javascript
运行
复制
ProductName Amount
ProductA    20
ProductB    10
ProductC    10
票数 1
EN

Stack Overflow用户

发布于 2020-02-03 23:43:26

您可以执行条件求和:

代码语言:javascript
运行
复制
select t.ProductName, 
       sum(case when type in (7, 8) then amount when type in (2, 3) then -amount end) as Amount
from table t
group by ProductName;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60042357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档