组合SQL行并获取值
我有一个数据视图,例如包含以下记录:组合SQL行并获取值,sql,Sql,我有一个数据视图,例如包含以下记录: Num Type Name ------------------------ 17 2 Luke 22 1 Luke 22 2 Sandy 10 1 Sandy 19 2 Tom 19 1 Tom 例如,如何组合Sandy的所有行并获得Num行的总数?但是它应该得到类型作为操作符(1=正,2=负)。因此,对于桑迪来说,它将是10
Num Type Name
------------------------
17 2 Luke
22 1 Luke
22 2 Sandy
10 1 Sandy
19 2 Tom
19 1 Tom
例如,如何组合Sandy的所有行并获得Num行的总数?但是它应该得到类型作为操作符(1=正,2=负)。因此,对于桑迪来说,它将是10-22=总数-12
结果表应如下所示:
Num Type Name
------------------------
4 null Luke
-12 null Sandy
0 null Tom
这在纯SQL中可能吗
谢谢您的帮助是的,这是可能的:
select name,
sum(case when type = 1 then num
when type = 2
then - num
end) as num
from t
group by name;
我在查询中省略了类型
,因为它似乎没有什么用处。thx对于……的情况,我完全忽略了这一点。我接受你的答案作为解决办法
SELECT
SUM( CASE WHEN Type = 1 THEN Num
WHEN Type = 2 THEN -Num
END
) AS Num,
NULL AS Type,
Name,
FROM Dataview
GROUP BY Name;