如何组织sql语句!

huyidehyd 2003-10-31 01:26:20
表t: id(维修编号) type(维修类型,分为a,b,c三种)
01 a
01 b
02 a
02 c
03 a
    04 c
...
(一次维修是可以有一种或一种以上维修类型)
假设我用SELECT DISTINCT count(id)的值为n(即维修的次数),那么在这n次维修中统计(针对一次维修在n次维修中):
a出现,bc不出现的次数
b出现,ac不出现的次数
c出现,ab不出现的次数
abc出现的次数
ab出现,c不出现的次数
ac出现,b不出现的次数
bc出现,a不出现的次数
维修的次数:n

也就是a,b,c各种组合和总维修次数:a,b,c,abc,ab,ac,bc,n!
不知道说得清不清楚,
以01为例,他应该统计在ab出现,c不出现的次数中;
以03 为例,他应该统计c出现,ab不出现的次数中;

谢谢!




...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
huyidehyd 2003-10-31
  • 打赏
  • 举报
回复
不好意思,我再说一下,如果还没明白,就结贴给分吧:
这是个维修的信息表,记录维修的相关信息,id字段表示维修编号,第一次01,以此类推;
每次维修对应了一种或以上(最多三种)的维修项目;对维修项目而言,有7种组合(如上),总之每次维修对应7种组合的一种;
现在我想统计:总的维修次数n;

在维修的这n次里面,这7种组合各出现的次数。
如上:
表t: id(维修编号) type(维修项目,分为a,b,c三种)
01 a
01 b
02 a
02 c
03 a
    04 c

我想得到的结果是:
a b c abc ab ac bc n(为临时列名)
1 0 1 0 1 1 0 4
zjcxc 2003-10-31
  • 打赏
  • 举报
回复
没看懂
oneofcsdn 2003-10-31
  • 打赏
  • 举报
回复
谢谢楼上的,我想得到的结果是(以6行为例,实际很多行)
a b c abc ab ac bc n(为临时列名)
1 0 1 0 1 1 0 4

就是说在这四次维修中:
01有a,b维修项,无c,计数加1
02有a,c维修项,无b;
03有a维修项,无b,c;
04有c维修项,无a,b;

假设又有一行05 a,那么该行应计入
a b c abc ab ac bc n
2 0 1 0 1 1 0 5
zjcxc 2003-10-31
  • 打赏
  • 举报
回复
测试结果:

id a b c abc ab ac bc
---- ----------- ----------- ----------- ----------- ----------- ----------- -----
01 1 1 0 2 2 1 1
02 1 0 1 2 1 2 1
03 1 0 0 1 1 1 0
04 0 0 1 1 0 1 1

(所影响的行数为 4 行)
zjcxc 2003-10-31
  • 打赏
  • 举报
回复
--是这个意思吗?

--测试数据
declare @t table(id varchar(2),type varchar(1))
insert into @t
select '01','a'
union all select '01','b'
union all select '02','a'
union all select '02','c'
union all select '03','a'
union all select '04','c'

--统计
select id
,a=sum(case type when 'a' then 1 else 0 end)
,b=sum(case type when 'b' then 1 else 0 end)
,c=sum(case type when 'c' then 1 else 0 end)
,abc=sum(1)
,ab=sum(case when type in('a','b') then 1 else 0 end)
,ac=sum(case when type in('a','c') then 1 else 0 end)
,bc=sum(case when type in('b','c') then 1 else 0 end)
from @t group by id
huyidehyd 2003-10-31
  • 打赏
  • 举报
回复
以03 为例,他应该统计a出现,bc不出现的次数中;

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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