Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MERGE только тех записей, которые будут в определенном временном интервале  [new]
yura1985
Member

Откуда:
Сообщений: 351
Добрый день всезнающий пипл, подскажите плиз, как написать запрос на мердж записей, но только тех записей, которые будут в интервале (текущая дата - 1 сутки по текущую дату + 1 сутки). Огромное спасибо.

MERGE tbl_test2 AS Workers
USING tbl_test AS Teachers
ON (Workers.testID = Teachers.testID)
  

WHEN NOT MATCHED BY TARGET
    THEN INSERT(testID, testDate)
    VALUES(testID, testDate);
GO

28 июл 11, 12:07    [11038717]     Ответить | Цитировать Сообщить модератору
 Re: MERGE только тех записей, которые будут в определенном временном интервале  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
yura1985
Добрый день всезнающий пипл, подскажите плиз, как написать запрос на мердж записей, но только тех записей, которые будут в интервале (текущая дата - 1 сутки по текущую дату + 1 сутки). Огромное спасибо.

MERGE tbl_test2 AS Workers
USING tbl_test AS Teachers
ON (Workers.testID = Teachers.testID)
  

WHEN NOT MATCHED BY TARGET
    THEN INSERT(testID, testDate)
    VALUES(testID, testDate);
GO

Так что ли?
MERGE tbl_test2 AS Workers
USING
 (
  SELECT *
  FROM tbl_test
  WHERE testDate>=DATEADD(DAY, DATEDIFF(DAY,0, CURRENT_TIMESTAMP)-1
    AND testDate< DATEADD(DAY, DATEDIFF(DAY,0, CURRENT_TIMESTAMP)+2
 ) AS Teachers
ON Workers.testID=Teachers.testID
WHEN NOT MATCHED BY TARGET
THEN INSERT(testID,testDate)VALUES(Teachers.testID,Teachers.testDate);
GO
28 июл 11, 12:15    [11038777]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить