select *,code=(select code from 表2 where 起始日期<=a.日期 and 结束日期>=a.日期)
from 表1 a

解决方案 »

  1.   

    DECLARE @T1 TABLE(D SMALLDATETIME, ID INT)
    INSERT @T1
    SELECT '2008-10-5',  1 UNION ALL 
    SELECT '2008-11-6',  2DECLARE @T2 TABLE(CODE VARCHAR(2),D1 SMALLDATETIME,D2 SMALLDATETIME,ID INT)
    INSERT @T2
    SELECT 'a1',  '2008-9-26',  '2008-10-25',  1 UNION ALL 
    SELECT 'a2',  '2008-10-26',  '2008-11-25',  2SELECT CODE FROM @T1 AS A JOIN @T2 AS B ON A.ID=B.ID WHERE D1<=D AND D<=D2
    /*
    CODE 
    ---- 
    a1
    a2
    */