Table1
ID StartDate EndDate         Code1
A123 2010/1/1 2010/3/31 aaa
A123 2010/5/1 2010/6/30 bbb
A123 2010/7/1 Null         cccTable2
ID StartDate EndDate         Code2
A123 2009/12/1 2009/12/31 zzz
A123 2010/1/15 2010/1/31 yyy
A123 2010/3/1 2010/4/15 xxx
A123 2010/5/5 2010/6/30 www

A123 2010/8/1 Null         vvv合并后的表3
ResultTable
ID StartDate EndDate         Code1 Code2
A123 2009/12/1 2009/12/31 Null zzz
A123 2010/1/1 2010/1/14 aaa Null
A123 2010/1/15 2010/1/31 aaa yyy
A123 2010/2/1 2010/2/28 aaa Null
A123 2010/3/1 2010/3/31 aaa xxx
A123 2010/4/1 2010/4/15 Null xxx
A123 2010/5/1 2010/5/4 bbb Null
A123 2010/5/5 2010/6/30 bbb www

A123 2010/7/1 2010/7/31 ccc Null
A123 2020/8/1 Null         ccc vvv逻辑是把相同ID的数据, 根据2个表中的时间段来找出数据。
比如说,表1中有2010-1-1 到2010-3-31的数据,表2中有2010-1-15到2010-1-31的数据,那么表3中就必须要有2010-1-1到2010-1-14, 2010-1-15到2010-1-31的数据,以此类推。哪位高手可以给点建议,谢谢了。

解决方案 »

  1.   

    Sorry, 重新发下
    Table1
    ID StartDate EndDate    Code1
    A123 2010/1/1 2010/3/31 aaa
    A123 2010/5/1 2010/6/30 bbb

    A123 2010/7/1 Null      cccTable2
    ID StartDate EndDate Code2
    A123 2009/12/1 2009/12/31 zzz
    A123 2010/1/15 2010/1/31 yyy
    A123 2010/3/1 2010/4/15 xxx
    A123 2010/5/5 2010/6/30 www

    A123 2010/8/1 Null vvv合并后的表3
    ResultTable
    ID StartDate EndDate Code1 Code2
    A123 2009/12/1 2009/12/31 Null zzz
    A123 2010/1/1 2010/1/14 aaa Null
    A123 2010/1/15 2010/1/31 aaa yyy
    A123 2010/2/1 2010/2/28 aaa Null
    A123 2010/3/1 2010/3/31 aaa xxx
    A123 2010/4/1 2010/4/15 Null xxx
    A123 2010/5/1 2010/5/4 bbb Null
    A123 2010/5/5 2010/6/30 bbb www

    A123 2010/7/1 2010/7/31 ccc Null
    A123 2020/8/1 Null ccc vvv逻辑是把相同ID的数据, 根据2个表中的时间段来找出数据。
    比如说,表1中有2010-1-1 到2010-3-31的数据,表2中有2010-1-15到2010-1-31的数据,那么表3中就必须要有2010-1-1到2010-1-14, 2010-1-15到2010-1-31的数据,以此类推。哪位高手可以给点建议,谢谢了。 数据库是MSSQL2005