Обновите столбец table1 и получите его на table2 - PullRequest
0 голосов
/ 04 октября 2019

Как мне создать запрос, в котором я могу обновить дату столбца таблицы1, чтобы получить ее в таблице2?

Вот несколько примеров таблиц

Таблица1:

|   stud_id |   start_date  | birt_date     |   name    |   exam_date   |
|   s001    |   11/19/2018  | 05/20/1999    |   john    |   10/20/2018  |
|   s003    |   01/01/2018  | 05/25/1995    |   mike    |   10/20/2018  |
|   s005    |   12/23/2018  | 02/20/1999    |   ed      |   10/20/2018  |
|   s005    |   12/23/2018  | 02/20/1999    |   ed      |   10/05/2017  |

Таблица2:

|   stud_id |   start_date  |   exam_date   |
|   s005    |   01/01/2017  |   10/20/2018  |
|   s001    |   01/01/2017  |   10/20/2018  |
|   s003    |   01/01/2017  |   10/20/2018  |

В основном я хочу изменитьтолько start_date из 3, поэтому s006 не изменится. Как я могу сделать это с помощью запроса? Я думал использовать затем выбрать таблицу, но я думаю, что она не будет работать.

Мне нужно на основе двух или более столбцов для условия моего обновления, поэтому я хочу обновить таблицу 1, где table1.stud_id= table2.stud_id и table1.exam_date = table2.exam_date

Ответы [ 3 ]

2 голосов
/ 04 октября 2019

присоединяйтесь и обновляйте

update t1 
set t1.stardate=t2.startdate,
t1.exam_date=t2.exam_date
from table1 t1 join table2 t2
on t1.stud_id=t2.stud_id
 where t2.stud_id='s003' -- if you just need s003 update
1 голос
/ 04 октября 2019

Вы можете объединить 2 таблицы:

UPDATE T1
SET Start_Date = T2.Start_Date
FROM Table1 AS T1
    INNER JOIN Table2 AS T2
        ON T1.stud_id = T2.stud_id
            AND T1.exam_date = T2.exam_date
1 голос
/ 04 октября 2019

Вы также можете использовать CTE для обновления:

;With cte as
(
    select t1.start_date as t1date,t2.start_date as t2date from table1 t1
    join table2 t2
    on t1.stud_id=t2.stud_id
    and t1.exam_date=t2.exam_date

)

update cte set t1date=t2date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...