邹大哥和各位高手还在吗,又有新问题了

bcsky 2004-11-16 02:25:31
数据格式如下
编号 种类
1 A
1 A
1 B
1 B
2 A
2 A
2 B
2 B
1 AA
1 AA
1 BB
1 BB
2 AA
2 AA
2 BB
2 BB


现在要求输出格式如下
编号 种类
1 A+AA 4次
1 B+BB 4次
2 A+AA 4次
2 B+BB 4次
A和AA,B和BB分别属于两个大类, 要求做如上统计
大家帮忙看看,先谢过了

...全文
92 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcsky 2004-11-16
  • 打赏
  • 举报
回复
感谢大家 这几天要好好研究一下了
zjcxc 2004-11-16
  • 打赏
  • 举报
回复
select 编号,种类=min(种类)+'-'+max(种类),次数=count(*)
from(
select 编号=1,种类='A'
union all select 1,'A'
union all select 1,'B'
union all select 1,'B'
union all select 2,'A'
union all select 2,'A'
union all select 2,'B'
union all select 2,'B'
union all select 1,'AA'
union all select 1,'AA'
union all select 1,'BB'
union all select 1,'BB'
union all select 2,'AA'
union all select 2,'AA'
union all select 2,'BB'
union all select 2,'BB'
)a group by 编号,left(种类,1)
order by 编号

/*--测试结果

编号 种类 次数
----------- ----- -----------
1 A-AA 4
1 B-BB 4
2 A-AA 4
2 B-BB 4

(所影响的行数为 4 行)
--*/
zjcxc 2004-11-16
  • 打赏
  • 举报
回复
--我看错了

select 编号,种类=min(种类)+'-'+max(种类),次数=count(*)
from 表 group by 编号,left(种类,1)
qizhanfeng 2004-11-16
  • 打赏
  • 举报
回复
up
bcsky 2004-11-16
  • 打赏
  • 举报
回复
谢谢大家。我的本意到不是要把小种类的字符串拼在一起,只要算出次数就可以了

TO zjcxc(邹建)

select 编号,种类=min(种类)+'-'+max(种类),次数=count(*)
from 表 group by 编号
好像不行啊 我查出的结果是
编号 种类 次数
1 A-BB 8
2 A-BB 8
lsxaa 2004-11-16
  • 打赏
  • 举报
回复
如果再有一个

1 AAA
这样吗
1 A+AA+AAA 4次
1 B+BB 4次
2 A+AA+AAA 4次
2 B+BB 4次
zjcxc 2004-11-16
  • 打赏
  • 举报
回复
--如果种类不是固定的规律的,则写个自定义函数实现种类的处理
create function f_str(
@编号 int
)returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=''
select @r=@r+'+'+rtrim(种类)
from 表 where 编号=@编号
return(stuff(@r,1,1,''))
end
go

select 编号,种类=dbo.f_str(编号),次数=count(*)
from 表 group by 编号
lsxaa 2004-11-16
  • 打赏
  • 举报
回复
如果再有一个

1 AAA

呢???>
zjcxc 2004-11-16
  • 打赏
  • 举报
回复

select 编号,种类=min(种类)+'-'+max(种类),次数=count(*)
from 表 group by 编号
victorycyz 2004-11-16
  • 打赏
  • 举报
回复
select 编号, left(种类,1) + '系列' as 种类,count(*) as 次数
from tablename
group by 编号, left(种类,1)
victorycyz 2004-11-16
  • 打赏
  • 举报
回复
select 编号, count(*)
from tablename
group by 编号, left(种类,1)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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