我有这样一个关于教工考勤的数据表kq
记载者每个教工每年每月每天的缺勤情况
xm nian yue day1 day2.........day31
李明 2009 02 02 02............02
李红 2006 03 01 02 02 02 01 ....01
02代表病假
01 正常
请问我想求每个员工在某年某月出勤情况
比如李明,李红在 2009 02,2006,03 月出勤多少天,缺勤多少天
请问这样的功能我该怎么实现
记载者每个教工每年每月每天的缺勤情况
xm nian yue day1 day2.........day31
李明 2009 02 02 02............02
李红 2006 03 01 02 02 02 01 ....01
02代表病假
01 正常
请问我想求每个员工在某年某月出勤情况
比如李明,李红在 2009 02,2006,03 月出勤多少天,缺勤多少天
请问这样的功能我该怎么实现
解决方案 »
- web服务器连接oracle数据库需要安装什么
- 问DataBinder.Eval的一个用法?
- 哪里有VSS 6.0 客户端的安装程序下载啊...急死人啦....
- 怎么样用程序创建、删除文件夹啊!!!!!请各位老大赐教啊!!!!!!!
- 要彻底重写程序,问问大家的意见
- 做一个查询,然后结果按google那样显示出来,应该怎么做?
- 在windows2003上安装visual studio.net2002存在兼容问题,怎办啊
- Datagrid和树的结合……?
- .net 用jmail发送邮件,发布本机或者本机测试都发送成功,发布到服务器发送邮件就失败。
- 小问题,怎么在页面弹出日期选择控件?我晕,先谢了 备位 !
- 关于事件不在后台生成代码的问题
- 关于SQL数据库与前台刷新的问题
NIAN char 4 0
YUE char 2 0
DAY1 varchar 20 1
DAY2 varchar 20 1
DAY3 varchar 20 1
DAY4 varchar 20 1
DAY5 varchar 20 1
DAY6 varchar 20 1
DAY7 varchar 20 1
DAY8 varchar 20 1
DAY9 varchar 20 1
DAY10 varchar 20 1
DAY11 varchar 20 1
DAY12 varchar 20 1
DAY13 varchar 20 1
DAY14 varchar 20 1
DAY15 varchar 20 1
DAY16 varchar 20 1
DAY17 varchar 20 1
DAY18 varchar 20 1
DAY19 varchar 20 1
DAY20 varchar 20 1
DAY21 varchar 20 1
DAY22 varchar 20 1
DAY23 varchar 20 1
DAY24 varchar 20 1
DAY25 varchar 20 1
DAY26 varchar 20 1
DAY27 varchar 20 1
DAY28 varchar 20 1
DAY29 varchar 20 1
DAY30 varchar 20 1
DAY31 varchar 20 1
--mssql 2005
select
xm,nian,yue,[date],[status]
into #temp
from
kq
unpivot
([status] for [date] in([day1],[day2],[day3],...,[day31]))b--李明 在 2009 02出勤多少天
select count(1) from #temp where xm='李明' and nian='2009' and yue='02' and status='01'--李明 在 2009 02缺勤多少天
select count(1) from #temp where xm='李明' and nian='2009' and yue='02' and status='02'
select xm,nian,yue,
decode(day1,'01',1,0)+
decode(day2,'01',1,0)+
......
decode(day31,'01',1,0) as 出勤
from tab
returns int as
begin
declare @num int
set @num=0
declare @zt varchar
for(int i=0;i<31;i++)
{
set @zt=(select dayi from kq_kqmx where jgh=@jgh and nian=@nian and yue=@yue)
if(@zt<>'01')
{
set@num=@num+1
}
}
end
return @num不好意啊在问您一下
这是我自己写的函数请问错在哪里
(case day1 when '01' then 1 else 0 end
+case day2 when '01' then 1 else 0 end
+case day3 when '01' then 1 else 0 end
+...
+case day31 when '01' then 1 else 0 end) as 正常天数,
(case day1 when '02' then 1 else 0 end
+case day2 when '02' then 1 else 0 end
+case day3 when '02' then 1 else 0 end
+...
+case day31 when '02' then 1 else 0 end) as 请假天数
where xm='李明' and nian='2009' and yue='02'
试下