Group By 问题。

wangmeng9396 2012-04-08 02:48:42
ID NAME COUNT
100 张三 100

101 张三 101

103 李四 300

104 王五 400

105 赵六 700


我想实现的是,当NAME 有相同的 合并起来 并且数量相加。只显示一条就行。

...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
orochiheart 2012-04-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
1 276283 FT0448 HT055 23309 OILING 901 0.75684
2 279914 FT0449 HT055 9315 OILING 690 0.5796
3 274822 FT0449 HT055 8293 OILING 720 0.6048
4 284559 FT0462 HT055 51 OILING 350 0.294
5 281232 FT0449 H……
[/Quote]
列名不要写错了 FT0448对应的列名是什么 就group by什么。。
wangmeng9396 2012-04-08
  • 打赏
  • 举报
回复
1 276283 FT0448 HT055 23309 OILING 901 0.75684
2 279914 FT0449 HT055 9315 OILING 690 0.5796
3 274822 FT0449 HT055 8293 OILING 720 0.6048
4 284559 FT0462 HT055 51 OILING 350 0.294
5 281232 FT0449 HT055 9551 OILING 515 0.4326
6 287888 FT0463 HT055 16192 OILING 499 0.41916

本来第2条和第三条应该是合并的,第三条和第五条应该是合并的。 但是他们还能出现重复数据。
EnForGrass 2012-04-08
  • 打赏
  • 举报
回复
select ETL_ID,ETL_OILCARRIERCODE ,ETL_EQUIPCODE,ETL_ETACODE,ETL_CLASS,ETL_TYPE,sum(ETL_OILQTYVOLUME),
sum(ETL_OILQTY) p0 from RM5EVTTRANSLINES p0 where 1=1 and p0.ETL_EQUIPCODE='HT055'
and p0.ETL_TYPE = 'OILING'
group by
p0.ETL_OILCARRIERCODE
, p0.ETL_EQUIPCODE,ETL_OILCARRIERCODE ,ETL_EQUIPCODE,ETL_CLASS,P0.ETL_ID,p0.ETL_TYPE

第一个红色部分,p0一样,字段重命名换一个,虽然不影响但是不好,
第二个,p0.ETL_OILCARRIERCODE, p0.ETL_EQUIPCODE,ETL_OILCARRIERCODE ,ETL_EQUIPCODE不都是同一个字段
删掉试试
你不就一个表吗?太乱了。改成这样不行吗?

select ETL_ID,ETL_OILCARRIERCODE ,ETL_EQUIPCODE,ETL_ETACODE,ETL_CLASS,ETL_TYPE,sum(ETL_OILQTYVOLUME),
sum(ETL_OILQTY) ETL_OILQTY from RM5EVTTRANSLINES where 1=1 and ETL_EQUIPCODE='HT055'
and ETL_TYPE = 'OILING'
group by ETL_OILCARRIERCODE ,ETL_EQUIPCODE,ETL_CLASS,ETL_ID,ETL_TYPE
EnForGrass 2012-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

比如说 我一张表有很多字段,我要查出来很多字段 按照某一个字段分组怎么还会出现很多重复数据?
[/Quote]
按某个字段group by之后,那个字段值是不会重复出现的,你说的重复是?

if exists(select *from sysobjects where name ='Stable' and xtype='u') drop table Stable
create table Stable ([ID] varchar(20),[NAME] VARCHAR(30),[COUNT] INT,xxx VARCHAR(10),yyy VARCHAR(10),zzz VARCHAR(10),www VARCHAR(10))
insert into Stable
select '100' , '张三' ,100,'a','b','c','d' union all
select '101' , '张三' ,101,'a','b','c','d' union all
select '103' , '李四' ,300,'a','b','c','d' union all
select '104' , '王五' ,400,'a','b','c','d' union all
select '105' , '王五' ,200,'a','b','c','d' union all
select '106' , '赵六' ,700,'a','b','c','d'

SELECT [NAME],SUM([COUNT]) TCount FROM Stable GROUP BY [NAME] ORDER BY [NAME]
/*
NAME TCount
------------------------------ -----------
李四 300
王五 600
张三 201
赵六 700

(所影响的行数为 4 行)
*/
wangmeng9396 2012-04-08
  • 打赏
  • 举报
回复
select ETL_ID,ETL_OILCARRIERCODE ,ETL_EQUIPCODE,ETL_ETACODE,ETL_CLASS,ETL_TYPE,sum(ETL_OILQTYVOLUME),
sum(ETL_OILQTY) p0 from RM5EVTTRANSLINES p0 where 1=1 and p0.ETL_EQUIPCODE='HT055'
and p0.ETL_TYPE = 'OILING'
group by p0.ETL_OILCARRIERCODE, p0.ETL_EQUIPCODE,ETL_OILCARRIERCODE ,ETL_EQUIPCODE,ETL_CLASS,P0.ETL_ID,p0.ETL_TYPE


我是这样写的 有什么问题吗?
wangmeng9396 2012-04-08
  • 打赏
  • 举报
回复
比如说 我一张表有很多字段,我要查出来很多字段 按照某一个字段分组怎么还会出现很多重复数据?
EnForGrass 2012-04-08
  • 打赏
  • 举报
回复
Test Data

if exists(select *from sysobjects where name ='Stable' and xtype='u')
drop table Stable
create table Stable ([ID] varchar(20),[NAME] VARCHAR(30),[COUNT] int)
insert into Stable
select '100' , '张三' ,100 union all
select '101' , '张三' ,101 union all
select '103' , '李四' ,300 union all
select '104' , '王五' ,400 union all
select '105' , '王五' ,200 union all
select '106' , '赵六' ,700

SELECT [NAME],SUM([COUNT]) TCount FROM Stable GROUP BY [NAME] ORDER BY [NAME]
/*
NAME TCount
------------------------------ -----------
李四 300
王五 600
张三 201
赵六 700

(所影响的行数为 4 行)
*/
EnForGrass 2012-04-08
  • 打赏
  • 举报
回复

if exists(select *from sysobjects where name ='Stable' and xtype='u') drop table Stable
create table Stable ([ID] varchar(20),[NAME] VARCHAR(30),[COUNT] int)
insert into Stable
select '100' , '张三' ,100 union all
select '101' , '张三' ,101 union all
select '103' , '李四' ,300 union all
select '104' , '王五' ,400 union all
select '105' , '赵六' ,700

SELECT [NAME],SUM([COUNT]) TCount FROM Stable GROUP BY [NAME] ORDER BY [NAME]
/*
NAME TCount
------------------------------ -----------
李四 300
王五 400
张三 201
赵六 700

(所影响的行数为 4 行)

*/
wangmeng9396 2012-04-08
  • 打赏
  • 举报
回复
select ID ,NAME SUM( COUNT) GROUP BY NAME 按照正常的 这样是没问题的 应该会计算总和 并且 不会有重复数据,但是我的还是现实重复数据。。。
javaoraspx 2012-04-08
  • 打赏
  • 举报
回复
select sum([COUNT]),name from tablename group by name

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧