/ / Як вставити запис із перевіркою [closed] - sql, sql-server

Як вставити запис з перевіркою [closed] - sql, sql-server

Використання 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 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

Нижченаведена запис не вставлена ​​в головну таблицю, оскільки дата доступна для ідентифікаторів у головній таблиці

    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

Як зробити запит для вставки запису з перевіркою (ідентифікатор і дата).

Потрібна довідка SQL Query

Відповіді:

-1 для відповіді № 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

цей запит повинен повернути потрібні рядки, які повинні бути вставлені в основну таблицю, я не протестував запит, помилую будь-які помилки