数据库:2008现有一个员工基本表(ygjb) 里面记录如下:
         姓名   部门
         张三  销售部
         李四  行政部还有一个年历表(nlb) 里面有一年的日期记录 如:
          日期               类别
2011-01-01 00:00:00.000 正常上班  
2011-01-02 00:00:00.000 周末休息
                   
要求:写一个存储过程,把下一个月的每个人的记录都插进另一个表中(rzb)效果:现在是1月,就是要产生2月的关于张三、李四的所有记录   日期                     类别        姓名   部门
2011-02-01 00:00:00.000 正常上班    张三  销售部
2011-02-01 00:00:00.000 正常上班    李四  行政部
2011-02-02 00:00:00.000 周末休息    张三  销售部
2011-02-02 00:00:00.000 周末休息    李四  行政部
                     
急用!求指教!   

解决方案 »

  1.   

    CREATE TABLE  ygjb
    (
    姓名 NVARCHAR(100),
    部门 NVARCHAR(100)
    )
    INSERT INTO ygjb
    SELECT N'张三', N'销售部' UNION ALL
    SELECT N'李四', N'行政部'CREATE TABLE nlb
    (
    日期 DATETIME,
    类别 NVARCHAR(100)
    )
    INSERT INTO nlb
    SELECT '2011-02-01 00:00:00.000', N'正常上班' UNION ALL
    SELECT '2011-01-02 00:00:00.000', N'周末休息'
    --------------------------------
    CREATE PROCEDURE proc_test AS
    BEGIN
    INSERT INTO rzb(日期, 类别, 姓名, 部门)
    SELECT b.日期, b.类别, a.姓名, a.部门
    FROM ygjb a, nlb b
    WHERE DATEDIFF(month, GETDATE(), b.日期) = 1
    END