关于sqlserver 数据库的group分组问题,在线等待回答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于sqlserver 数据库的group分组问题,在线等待回答相关的知识,希望对你有一定的参考价值。

通过字段A,C,D进行分组查询,集中情况具体看下面的数据
第一种情况 原表数据
A B C D CODE CODE1 CODE1NAME
A001 B001 C001 D001 0 1
A001 B002 C001 D001 0 2
如果CODE字段的值都是零时,CODE1和CODE1NAME字段设置成E 注意:分组前只有一条记录,如果字段CODE是零时,也设置成E
抽出后数据
A C D CODE1 CODE1NAME
A001 C001 D001 E E
第二种情况 原表数据
A B C D CODE CODE1 CODE1NAME
A001 B001 C001 D001 1 1
A001 B002 C001 D001 1 2
如果CODE字段有一个不是零时,看CODE1的值,如果每条记录CODE1这个字段值不等时,CODE1和CODE1NAME字段设置成Z
注意:分组前只有一条记录,算作第三种情况
抽出后数据
A C D CODE1 CODE1NAME
A001 C001 D001 Z Z
第三种情况 原表数据
A B C D CODE CODE1 CODE1NAME
A001 123 C001 D001 1 1 1111
A001 234 C001 D001 1 1 1111
A001 456 C001 D001 1 1 1111
A002 789 C002 D002 1 2 2222
A002 554 C002 D002 1 2 2222
A002 4343 C002 D002 1 2 2222
A003 3434 C003 D003 1 3 3333
A003 3434 C003 D003 1 3 3333
A003 34343 C003 D003 1 3 3333
如果上面两种情况都不是时候(如果每组CODE的值相等时)取CODE1和CODE1NAME的值
抽出后数据
A C D CODE1 CODE1NAME
A001 C001 D001 1 1111
A002 C002 D002 2 2222
A003 C003 D003 3 3333

以上三种情况一个sql语句怎么一起检索出来,请各位大侠帮帮忙,小弟很感谢!!!!!!!

参考技术A 在select中,用 case when 情况一 then 值1 when 情况二 then 值2 esle 值3 end 这种结构。不会用case的话,百度一下吧。

c#sqlserver在啥情况下使用到groupby进行分组查询

参考技术A 需要对某个有重复值的字段进行分组汇总数据的时候
比如:有表a
name lesson score
张三 语文 90
李四 数学 95
张三 数学 88
我们查询每个人的总分的时候:
select name,sum(score) as totalscore
from a
group by name
结果:
name totalscore
张三 178
李四 95

以上是关于关于sqlserver 数据库的group分组问题,在线等待回答的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver2008,sql编程,group by 用法

sqlserver用group by分组了,但是怎么才能给每一组数据按照从小到大编号呢

关于thinkphp5中数据库分组查询group

sqlserver中分区函数 partition by与 group by 区别 删除关键字段重复列

关于sqlserver分组求和的问题

SQL中的group by为啥是按照分组的第二个字段排序的呢?