求1条INSERT语句,有挑战!
员工日期表
员工 日期 月份
a 2013-01-01 1
a 2013-01-05 1
b 2013-01-05 1
b 2013-01-08 1
年度日期表---(当年有多少天)
月份 日期
1 2013-01-01
.................
12 2013-12-31
--以下是期望得到的结果------------------------
a 2013-01-01 1
....2-4
a 2013-01-05 1
....31
....1-4
b 2013-01-05 1
....6-7
b 2013-01-08 1
----------------------------------
即通过年度日期表,把员工日期表里,不存在的日期,通过INSERT补上.
------解决方案--------------------INSERT 员工日期表
SELECT B.员工,A.日期,A.月份
FROM 年度日期表 A,(SELECT DISTINCT 员工
FROM 员工日期表) AS B
WHERE NOT EXISTS (
SELECT 1
FROM 员工日期表
WHERE 员工=B.员工
AND 日期 = A.日期
)