使用SQL Server 2000
主表
ID Date Value
001 23-04-2009 200
001 24-04-2009 300
002 23-04-2009 250
002 24-04-2009 350
002 25-04-2009 250
....
中学表
ID Date Value
001 23-04-2009 200
001 24-04-2009 300
002 23-04-2009 250
002 24-04-2009 350
002 25-04-2009 250
002 26-04-2009 550
....
在主表中,我想从辅助表中插入数据(每个数据应该从下一个日期开始为每个ID插入)
如果我将辅助表数据插入到主表中,主表应该从下一个日期起接受id ...
预期输出
ID Date Value
001 23-04-2009 200 'old record from master table
001 24-04-2009 300 'old record from master table
002 23-04-2009 250 'old record from master table
002 24-04-2009 350 'old record from master table
002 25-04-2009 250 'old record from master table
002 26-04-2009 550 'New Record from Secondary Table
下面提到的记录未插入主表中,因为日期可用于主表中的id
001 23-04-2009 200
001 24-04-2009 300
002 23-04-2009 250
002 24-04-2009 350
002 25-04-2009 250
如何进行查询以插入带有验证的记录(id和日期)。
需要SQL查询帮助
答案 0 :(得分:-1)
select s.*
from
(select id, date, value
from secondaryTable ) s ,
(
select id, max(date) as date
from mainTable
group by id ) a
where s.id = a.id and s.date>a.date
这个查询应该返回应该插入主表的所需行,我还没有测试过查询,请原谅任何错误