日期:2014-05-17  浏览次数:20641 次

疑难统计问题
本帖最后由 waCtr 于 2012-11-22 10:45:41 编辑 数据表table1
    部门    时间    级别   A类  B类
    部门A   ..        1                是
    部门B   ..        2        是   
    部门C   ..        2                是
    部门C   ..        3        是
上面是表数据

想统计  某一个部门下是B类的  所有级别(1/2/3...)   的次数
 比如:统计所有部门
          所以部门     级别1       1次
          所有部门     级别2       1次
          所以部门     级别3       0次
或者统计A部门
            A部门      级别1       1次
            A部门      级别2       0次
            A部门      级别3       0次
            ..
...

这种sql 估计会很复杂 
  秋高手指点....





------最佳解决方案--------------------


drop table tabletest
create table tableTest
(
dept varchar(20),
Class varchar(20),
CategoryA varchar(20),
CategoryB varchar(20),
CreateDate datetime
)
insert into tableTest values ('部门1','1','是','',getdate())
insert into tableTest values ('部门1','2','是','',getdate())
insert into tableTest values ('部门1','2','','是',getdate())
insert into tableTest values ('部门1','1','是','',getdate())
insert into tableTest values ('部门2','1','是','',getdate())
insert into tableTest values ('部门2','2','','是',getdate())
insert into tableTest values ('部门2','1','是','',getdate())
insert into tableTest values ('部门2','1','是','',getdate())

select * from tabletest

select dept,class,count(class) as 级别次数 from tabletest
--where dept=''
group by dept,class
order by dept

/*

部门1 1 2
部门1 2 2
部门2 1 3
部门2 2 1

*/


------其他解决方案--------------------
他count错了列
drop table tabletest
 create table tableTest
 (
 dept varchar(20),
 Class varchar(20),
 CategoryA varchar(20),
 CategoryB varchar(20),
 CreateDate datetime
 )
 insert into tableTest values&nb