Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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_Tsql - Fatal编程技术网

Sql 从一列数据创建类别

Sql 从一列数据创建类别,sql,tsql,Sql,Tsql,我有以下数据 Place program personID Diff ABC pro1 123 -2 ABC pro1 234 3 ABC pro2 123 4 ABC pro3 123 -8 ABC pro3 234 4 ABC pro3 345 5 XYZ pro1 987 -6

我有以下数据

Place   program personID    Diff
ABC pro1         123       -2
ABC pro1         234        3
ABC pro2         123        4
ABC pro3         123       -8
ABC pro3         234        4
ABC pro3         345        5
XYZ pro1         987       -6
XYZ pro1         765        1
XYZ pro1         657        2
XYZ pro2         987       -5
XYZ pro3         987       -7
XYZ pro3         765        1
XYZ pro3         345        2
XYZ pro1         438       -6
我想创建一个如下所示的表格

Place   Program LessThan0   GreaterThan0
ABC        pro1         1   1
ABC        pro2         0   1
ABC        pro3         1   2
XYZ        pro1         2   2
XYZ        pro2         1   0
XYZ        pro3         1   2
我已经在下面的SQL FIDLE中编写了代码


但不知何故,我没有得到我想要的总结。它比要求的更详细。我的SQL语句应该如何修改?

您非常接近。我用sum(if())语句替换了case when

Select Place, program, 
Sum(if(DiffMonth < 0,1,0)) AS Less,
Sum(if(DiffMonth > 0,1,0)) AS Great
from Table1 GROUP BY Place, program;
选择地点、程序、,
总和(如果(月差<0,1,0))小于,
总和(如果(DiffMonth>0,1,0))为最大值
表1按地点、计划分组;