Обновить таблицу с внутренним соединением - PullRequest
0 голосов
/ 31 января 2019

У меня есть две таблицы, показанные ниже

BidID   CreatedDate              BidVersionNumber
2       2018-05-17 04:35:40.320    AB25443/01-01
3       2018-06-11 03:36:59.977    AB25443/01-01

Вторая таблица

BidVersionNumber       CreatedDate        BidId
 AB25443/01-01       5/17/2018 4:35:40
 AB25443/01-01       5/17/2018 4:41:10     

Я хочу обновить BidId второй таблицы, присоединившись к первой таблице на BidVersionNumber, но так какBidVersionNumber - это то же самое, что я тоже хочу сопоставить с присоединением к CreatedDate только в 4:35:40 часть времени.Может кто-нибудь подскажите, пожалуйста, как объединить две колонки.

Желаемый вывод

BidVersionNumber       CreatedDate        BidId
 AB25443/01-01       5/17/2018 4:35:40     2
 AB25443/01-01       5/17/2018 4:41:10     3  

1 Ответ

0 голосов
/ 31 января 2019

Сложная часть здесь - сравнение времени.Один из способов сделать это - вычитать секунду из времени t1 и, по существу, использовать between:

update t2
    set bidId = t1.BidId
    from table2 t2 join
         table1 t1
         on t2.BidVersionNumber = t1.BidVersionNumber and
            t2.CreatedDate <= t1.CreatedDate and
            t2.CreatedDate > dateadd(second, -1, t1.CreatedDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...