Вставить в... выбрать
Я хочу вставить значения в столбец моей первой таблицы "p_edw_tmp.TK_NPS_subdate ", и эти значения должны иметь одинаковый идентификатор (subs_id=subs_id), но мой запрос вставляет здесь нулевые значения, мой запрос и результат, который я получаю
INSERT INTO p_edw_tmp.TK_NPS_subdate (activationDate)
SELECT b.activation_date
FROM P_EDW_BO_UNIVERSE.DW_SUBNOS b
WHERE p_edw_tmp.TK_NPS_subdate.subs_id=b.subs_id
результат
survey subno subs_id activationdate
date
NULL NULL NULL 28/03/2013
NULL NULL NULL 14/09/2017
NULL NULL NULL 11/02/2006
NULL NULL NULL 07/02/2007
NULL NULL NULL 20/04/2011
01/07/2015 770611368 60 584 365 NULL
01/07/2015 772682168 3 541 647 NULL
01/07/2015 770827778 6 616 NULL
01/07/2015 774614365 34 444 141 NULL
01/07/2015 796997578 73 457 413 NULL
я хочу получить такой результат
01/07/2015 770611368 60 584 365 07/02/2007
01/07/2015 772682168 3 541 647 20/04/2011
2 ответа
Решение
Похоже, вы хотите обновить существующие данные:
UPDATE p_edw_tmp.TK_NPS_subdate
FROM
( SELECT subs_id, activation_date
FROM P_EDW_BO_UNIVERSE.DW_SUBNOS
) AS b
SET activationDate = src.activationDate
WHERE p_edw_tmp.TK_NPS_subdate.subs_id=b.subs_id
Это потому, что вы выбираете только столбец b.activation_date
и указав столбец (activationDate)
имя и вставка только в этот столбец.
Вам нужно указать имена столбцов, которые вы хотите вставить во вставку, и выбрать их. Таким образом, вы можете изменить свой запрос на что-то вроде:
INSERT INTO p_edw_tmp.TK_NPS_subdate (survey,subno,subs_id,activationdate)
SELECT b.survey,b.subno,b.subs_id,b.activation_date
FROM P_EDW_BO_UNIVERSE.DW_SUBNOS b
WHERE p_edw_tmp.TK_NPS_subdate.subs_id=b.subs_id