Мне нужно написать запрос, который вставляет данные в TableB
от TableA
.Как вставить в одну таблицу из другой таблицы с преобразованиями типов данных и значениями значений
Если данные уже существуют в TableB, не вставляйте их.
TableA
- это таблица с данными, импортированными с использованием SSIS
пакета со всеми полями типа данных varchar.
ТаблицаB представляет собой таблицу с полями разных типов данных.
При вставке мне нужно вставить данные из TableA
в TableB
, убедившись, что TableB
получает свои данные в правильном формате.
Это TableA
с данными, импортированными в SSIS
как varchar
типа все:
Это структура TableB:
Я пишу следующий запрос :
insert into
TableB(Date,Receipt,Description,CardMember,AccountNumber,Amount,YYYYMM)
select Date,Receipt,Description,CardMember,AccountNumber,Amount,
convert(varchar(4), year(getdate())) + convert(varchar(2),
month(getdate())) from TableA a
where not exists(select 1 from TableB b where
b.CardMember = a.CardMember) and (convert(varchar(4), year(getdate()))
+ convert(varchar(2), month(getdate()))) = b.YYYYMM
YYYYMM
колонок в TableB
должен содержать YYYYMM
данных, где YYYY
является текущим годом и MM
является текущим месяцем.
Например:
year(GetDate()) = 2015
month(GetDate()) = 7
Я ищу 201507
Итак, после того, как запрос будет успешно выполнен, я TableB глядя, как это:
Мои запрос где-то не так, и при его выполнении у меня возникает следующая ошибка:
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'id'. Msg 102, Level 15, State 1, Line 4 Incorrect syntax near 'YYYYMM'.
Каков правильный способ?
Вы ссылаетесь псевдоним 'tt', который не был определен в любом месте ранее. – Siyual
Я обновил инструкцию SQL. – gene