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

*小小的查询有关问题,分不够另开帖加,大侠们帮忙*

2012-01-11 
*********小小的查询问题,分不够另开帖加,大侠们帮忙*********id部门员工员工下面的客户每天访问网站数日

*********小小的查询问题,分不够另开帖加,大侠们帮忙*********
id     部门           员工           员工下面的客户       每天访问网站数             日期
1       A部门         H员工             W客户                                 8                       2007-5-7      
2       A部门         H员工             Y客户                                 11                     2007-5-7      
3       A部门         I员工             Z客户                                 4                       2007-5-7      
4       B部门         J员工             O客户                                 10                     2007-5-8
5       B部门         J员工             P客户                                 3                   2007-5-9  
5       B部门         J员工             Q客户                                 3                   2007-5-10            

上面是数据库的字段,一个部门有多个员工,一个员工下面又有多个客户,每个客户在每一天都有访问网站的次数的记录

我想按每周为自然段,统计每个部门的所有员工,统计每个员工他们下面的客户每周共访问多少次,其中访问次数大于10次的多少人,站总数的百分之几

按每周为自然段,每周运行一次SQL,把结果追加到结果表中

结果是这样的
部门         员工       客户共访问数       客户数       大于10的客户       百分比
A部门       H员工           19                         2                       1                   1/2
A部门       I员工           4                           1                       0                   0/1
B部门       J员工           16                         3                       1                   1/3

注意是按周为单位统计

大侠帮忙,谢谢拉,分不够再加

[解决办法]
是统计一个具体的周还是统计所有的周?
[解决办法]
create table #t(id int,部门 varchar(100),员工 varchar(10),员工下面的客户 varchar(10),每天访问网站数 int,日期 datetime)



insert into #t select 1, 'A部门 ', 'H员工 ', 'W客户 ',8, '2007-5-7 '
insert into #t select 2, 'A部门 ', 'H员工 ', 'Y客户 ',11, '2007-5-7 '
insert into #t select 3, 'A部门 ', 'I员工 ', 'Z客户 ',4, '2007-5-7 '
insert into #t select 4, 'B部门 ', 'J员工 ', 'O客户 ',10, '2007-5-8 '
insert into #t select 5, 'B部门 ', 'J员工 ', 'P客户 ',3, '2007-5-9 '
insert into #t select 6, 'B部门 ', 'J员工 ', 'Q客户 ',3, '2007-5-10 '

select
部门,
员工,
sum(每天访问网站数) as 客户共访问数,
count(*) AS 客户数,
sum(case when 每天访问网站数> =10 then 1 else 0 end ) as 大于10的客户,
cast(sum(case when 每天访问网站数> =10 then 1 else 0 end ) as varchar(10)) + '/ ' + cast(count(*) as varchar(10)) as 百分比
from #t
group by 部门,员工

drop table #t

热点排行