sqlserver考勤表,考勤表记录

sql交叉表写法,出考勤报表

\--我写下我的思路吧--\

十多年的加查网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整加查建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“加查网站设计”,“加查网站推广”以来,每个客户项目都认真落实执行。

--先取工号姓名,如果考勤表.EMPLOYEEID=员工表.employeeID,则--\

select b.employeeno 工号,b.name 姓名 from atten a,employee b

where a.employeeid=b.employeeID --假设考勤表是atten--

--------------------------------------

\--行转列,将1号到30号,从IN_TEIM、OUT_TIME中获取

select 

if (IN_TIME like '01.11%',RIGHT(IN_TIME,5),null) as '1号上班'

if (OUT_TIME like '01.11%',RIGHT(OUT_TIME,5),null) as '1号下班'

from ATTEN group by IN_TIME,OUT_TIME

--如何实现将多个数值写到一个字段中,还需要再研究下。大体思路就这这样。--\

做考勤表,求大神帮实现从原始数据中提取首次打卡和末次打卡时间

先分析,若直接在excel表里,实现你要的功能,若只用excel自带的函数的来处理会有难度。

我这边有另外的方法,将excel表导入到sqlserver数据库,本来excel里面有3个栏位。

可先用=B2" "C2符号将第二和第三栏位合并,若合并不了,可先设置两个栏位都为时间或者都为文本。因为sqlserver里面日期格式为2019-05-25 19:00:00。

上面操作完成后导入sqlserver,用sql语法检索出你需要的比如打卡号4的第一次时间

select min(打卡时间栏位名称) from 表名 where cardno=4 检索出来后复制 粘贴到excel表即可。

最后一次时间select max(打卡时间栏位名称) from 表名 where cardno=4

sqlserver查找有迟到人的全部出勤记录

select * from 出勤表

where personid in (select distinct personid from 出勤表 where 签到时间8点)

personid=人员ID,也可以是其他的标识列名,自己改

有两张表,员工表 (员工编号,员工姓名,员工性别)T(Tid,name,sex),考勤表(员工编号,迟到时间,迟

你的试题不会是老师的作业吧?

下面以SQLserver例子给你参考!

1 select t.nam from T,L where T.tid=L.tid and lc0 and L.la='2010-4-1' and L.la='2010-5-1'

2. select t.nam from T,L where T.tid=L.tid and lc0 group by t.id,T.name having count(*)1

3.select t.* from T join L on T.tid=L.tid where lc=0

4.update T set name='Jeke' where tid='00001'

5.select * from T where name like '%O%'

6.CREATE TRIGGER T_Del ON T AFTER DELETE as delete from L where tid in (select tid from deleted)


标题名称:sqlserver考勤表,考勤表记录
地址分享:http://scyanting.com/article/dssgcho.html