Використання 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 для відповіді № 1select 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
цей запит повинен повернути потрібні рядки, які повинні бути вставлені в основну таблицю, я не протестував запит, помилую будь-які помилки