日期:2014-05-17  浏览次数:20641 次

求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.日期
)