求一SQL实现月考勤统计功能

来源:百度知道 编辑:UC知道 时间:2024/05/20 00:41:31
实现这样的效果: 根据制定的时间范围比如2007-9-28到2007-10-28之间
姓名 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21...28 出差天数 出勤天数
张三 迟到 出差....

数据库一共两个表格
A员工信息表
id name
1 张三
B考勤表
ID EID(员工ID) checkdate(考勤日期) 迟到 早退 病假 事假 旷工 出差
1 1 2007-10-1 是 是 否 否 否 否
最好有个例子

不知道你是什么需求: 随便写鸟个你看能不能用
CREATE TABLE employee (
eid int NOT NULL,
name varchar(8),
PRIMARY KEY (eid)
)
CREATE TABLE works (
wid int NOT NULL,
work varchar(10),
PRIMARY KEY (wid)
)

CREATE TABLE whichday (
did varchar(6),
eid int FOREIGN KEY (eid) REFERENCES employee (eid),
wid int FOREIGN KEY (wid) REFERENCES works (wid)
)

go

INSERT INTO works VALUES (1,'迟到')
INSERT INTO works VALUES (2,'早退')
INSERT INTO works VALUES (3,'迟到早退')
INSERT INTO works VALUES (4,'矿工')
INSERT INTO works VALUES (5,'出差')
INSERT INTO works VALUES (7,'事假')
INSERT INTO works VALUES (8,'正常')

insert into employee values(1,'张三')
insert into employee values(2,'李四')

go

create view show as
SELECT employee.[name],whichday.did, works.[work]
FROM employee