首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于主从表统计有关问题

2012-12-17 
关于主从表统计问题create table aa(id int IDENTITY (1, 1) NOT NULL,title varchar(20),kk varchar(20))

关于主从表统计问题

create table aa
(
id int IDENTITY (1, 1) NOT NULL,
title varchar(20),
kk varchar(20)
)

create table bb
(
id int IDENTITY (1, 1) NOT NULL,
kk varchar(20),
singe int 
)
insert into aa values('第一个','a')
insert into aa values('第二个','b')

insert into bb values('a',1)
insert into bb values('a',1)
insert into bb values('a',0)
insert into bb values('a',0)
insert into bb values('a',1)

insert into bb values('b',1)
insert into bb values('b',0)
insert into bb values('b',1)
insert into bb values('b',0)
insert into bb values('b',0)

如果想生成如下的统计表格

title    全部   等于0
第一个    5        2
第二个    5       3

如果想这样弄个咋整?
[最优解释]

select title,
sum(case when singe is not null then 1 else 0 end) 全部,
sum(case when singe=0 then 1 else 0 end) 等于0
from aa,bb
where aa.kk=bb.kk
group by title

[其他解释]
select aa.title, 
      count(bb.*) as '全部', 
      sum(case when bb.single =0 then 1 else 0 end) as '等于0'
from aa right join  bb on  aa.kk=bb.kk
grou by  aa.title
 
[其他解释]

SELECT
 title,COUNT(TITLE),SUM(CASE BB.SINGE WHEN 0 THEN 1 ELSE 0 END)
  FROM
   aa LEFT JOIN BB ON AA.kk=BB.KK GROUP BY TITLE

[其他解释]
感谢,f152520843,实际上这个表还有很多的字段,最后用的这个语句,感谢,结贴啦

热点排行