+ -
当前位置:首页 → 问答吧 → 求教一个mssql写法

求教一个mssql写法

时间:2011-11-14

来源:互联网

数据表是这样的
string string int int
  A B C D
 001 小明 1 6
 002 小红 2 6
 001 小明 4 5
 003 小红 6 5

首先需要将D字段最大值对应的不同人名列表出来,A字段不同取D字段最大这次,然后以B字段人名为group,将C字段相加,即得到如下结果.太晕了.
string string int int
  A B C D
 001 小明 5 6
 002 小红 8 6

作者: c00757341   发布时间: 2011-11-14

select a,b,sum(c) as c,max(d) as d
from tb
group by a,b

作者: liangCK   发布时间: 2011-11-14

SQL code
select a,b,sum(c) as c ,max(d) as d
from tb
group by a,b

作者: Beirut   发布时间: 2011-11-14

SQL code
select
 a,b,sum(c) as c ,max(d) as d
from
 tb
group by
 a,b

作者: fredrickhu   发布时间: 2011-11-14

如果D字段是一个范围呢求和呢?比如 4<d<6
string string int int
  A B C D
 001 小明 1 6
 002 小红 2 6
 001 小明 4 5
 003 小红 6 5
 002 小明 1 4
 003 小红 2 4
 004 小明 4 3
 003 小红 6 3
D字段只是作为判断用,得到如下结果
string string int int
  A B C
 001 小明 6
 002 小红 10

作者: c00757341   发布时间: 2011-11-14

select a,b,sum(c) as c 
from tb
group by a,b
where d between 4 and 6

作者: hllfl   发布时间: 2011-11-14

select a,b,sum(c) as c  
from tb
where d between 4 and 6
group by a,b

作者: hllfl   发布时间: 2011-11-14

由于A字段编号没有和B字段姓名对应,所以group by a,b的话,实际会得到这样的结果
  A B C D
 001 小明 5 6
 002 小红 2 6
 003 小红 6 5
也就是说,D字段不是全为6

作者: c00757341   发布时间: 2011-11-14