注册 登录
编程论坛 SQL Server论坛

求助一个SQL语句

wfdszds 发布于 2010-06-09 22:12, 540 次点击
asp出勤统计求助
数据库kkk.mdb
id   num    上午   下午   data
1   张三    内勤   内勤   2010-06-01
2   张三    内勤   会议   2010-06-02
3   张三    下乡   事假   2010-06-03
4   张三    会议   事假   2010-06-04
.......
如何取得2010-06-01至2010-06-30期间,张三内勤、下乡。。的天数?

比如统计2010-06-01至2010-06-04日
内勤的天数就是1.5天,事假1天,会议1天,下乡0.5天
2 回复
#2
Atom_12010-06-10 08:57
假设你的这个表名为 出勤

select count(上午)
from 出勤
where 上午='内勤' and num='张三' and data between '2010-06-01' and '2010-06-30'

select count(下午)
from 出勤
where 下午='内勤' and num='张三' and data between '2010-06-01' and '2010-06-30'

得出的两个值取平均就是内勤的天数。  时间字段的条件不太确定是否正确~
#3
xiao1_2xiao2010-06-10 14:44
select sname,sum(天数),日期 from
(select sname,count(am)/2 天数,left(date,charindex('-',date)+2) 日期 from ttt
where am='内勤'
group by sname,left(date,charindex('-',date)+2)
union all
select sname,cast(cast(count(am) as decimal(18,1))/2 as decimal(18,1))  天数,left(date,charindex('-',date)+2) 日期 from ttt
where pm='内勤'
group by sname,left(date,charindex('-',date)+2)) t
group by sname,日期
1