Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
组合SQL行并获取值_Sql - Fatal编程技术网

组合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;