首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当有多个case语句涉及SUM时,如何组合以下两个sql查询

当有多个case语句涉及SUM时,如何组合以下两个sql查询
EN

Stack Overflow用户
提问于 2020-06-09 01:37:01
回答 1查看 34关注 0票数 0

这是第一个子查询:

代码语言:javascript
复制
SELECT SUM(CASE WHEN TRADE_TYPE='SELL' THEN (QUANTITY*PRICE) END)  -
       SUM(CASE WHEN TRADE_TYPE='BUY' THEN (QUANTITY*PRICE) END) AS NET_PL, TRADINGSYMBOL AS STOCK_NAME    
       FROM dbo.[Table1]
       GROUP BY TRADINGSYMBOL, TRADE_DATE

这是第二个子查询:

代码语言:javascript
复制
SELECT SUM(CASE WHEN TRADE_TYPE='BUY' THEN QUANTITY END) - 
       SUM(CASE WHEN TRADE_TYPE='SELL' THEN QUANTITY END) AS NET_QUANTITY, TRADINGSYMBOL AS STOCK_NAME
       FROM  dbo.[Table1]
       GROUP BY TRADINGSYMBOL

这是第二个子查询的查询结果:

代码语言:javascript
复制
NET_QUANTITY           STOCK_NAME
---------------------- --------------------------------------------------
NULL                   ABCL
0                      ADAT
NULL                   BAF
NULL                   BEGE
0                      CRECC
NULL                   CIEN
NULL                   DFMXA
NULL                   DFJL
-50                    HDANK
1000                   MEHD
NULL                   PRAK
0                      TNTS

作为净数量为0的第二个查询结果的一部分存在的每个TRADINGSYMBOL都必须与第一个查询结果合并/合并。我的意思是,除了包含在query-1中的TRADINGSYMBOL(s)之外,query-2交易符号还必须计算它们的(数量*价格),并且应该是最终输出的一部分。

请给我引路。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-06-09 02:12:09

一种快速而简单的方法是将它们作为两个子查询处理。

代码语言:javascript
复制
SELECT
    PL.STOCK_NAME
    ,PL.NET_PL
    ,Q.NET_QUANTITY
FROM
    (SELECT SUM(CASE WHEN TRADE_TYPE='SELL' THEN (QUANTITY*PRICE) END)  -
       SUM(CASE WHEN TRADE_TYPE='BUY' THEN (QUANTITY*PRICE) END) AS NET_PL, TRADINGSYMBOL AS STOCK_NAME    
       FROM dbo.[Table1]
       GROUP BY TRADINGSYMBOL, TRADE_DATE) AS PL
FULL OUTER JOIN
    (SELECT SUM(CASE WHEN TRADE_TYPE='BUY' THEN QUANTITY END) - 
       SUM(CASE WHEN TRADE_TYPE='SELL' THEN QUANTITY END) AS NET_QUANTITY, TRADINGSYMBOL AS STOCK_NAME
       FROM  dbo.[Table1]
       GROUP BY TRADINGSYMBOL) AS Q ON PL.STOCK_NAME = Q.STOCK_NAME
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62268004

复制
相关文章

相似问题

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