从同一个表上的2个选项中提取两个不同的列

ste*_*nll 5 sql t-sql

我有以下两个查询:

SELECT globalid, name, price, sum(qnt) as pozitive 
from main 
where [date-out] is null 
group by globalid, name, price;
Run Code Online (Sandbox Code Playgroud)

此查询提供两种日期,日期创建日期日期输入中不同项目的数量总和.

SELECT globalid,  sum(qnt) as negative
from main 
where [date-out] is not null 
group by globalid;
Run Code Online (Sandbox Code Playgroud)

此查询给出了日期输出中不同项目存储的数量总和.

我想创建一个具有以下字段的DataSet:

globalid - 名称 - 价格 - 库存 - 已售出 - 总计

我在网上找到了一些例子,但是,它们主要是使用count函数,或者如果使用sum,只有一个查询有条件,而不是两者都有.我正在使用SQL Server,任何帮助表示赞赏.

sge*_*des 2

似乎您可以使用CASE--SUM不需要任何子查询:

SELECT 
    globalid, 
    name,
    price,
    sum(case when [date-out] is null then qnt end) positive,
    sum(case when [date-out] is not null then qnt end) negative,
    sum(qnt) total
from main
group by
    globalid, 
    name,
    price
Run Code Online (Sandbox Code Playgroud)