#sql #sql-server
#sql #sql-сервер
Вопрос:
Итак, моя основная таблица — TableA (поля: CustomerID, A2, A3, A4, A5), которая содержит все поля, кроме одного… Мне нужно добавить поле TransactionID TableB в TableA, чтобы оно выглядело следующим образом: TransactionID, CustomerID, A2, A3, A4, A5.
Таблица A и таблица B могут связываться друг с другом при вводе CustomerID.
SELECT
b.TransactionID, a.CustomerID, a.2, a.3, a.4, a.5
FROM TableB b
JOIN TableA a
ON a.CustomerID = b.CustomerID
Этот запрос получает все, что мне нужно. Однако у меня возникают проблемы, когда дело доходит до вставки поля TransactionID в TableA. Я знаю, что упускаю что-то очевидное.
Спасибо.
Дополнительная информация: Проблема в том, что TableB не содержит поле TransactionID. Каждый CustomerID содержит как минимум 1 TransactionID, но моя цель — добавить TransactionID в TableB. Общим знаменателем между таблицами A и TableB является CustomerID.
Комментарии:
1. есть ли в TableA поле
TransactionID
, и вы пытаетесь обновить это поле значением из TableB?2. какую ошибку вы получаете при вставке?
3. В чем проблема? Вы получаете ошибку или что-то еще? Можете ли вы показать свою инструкцию insert, которую вы пробовали?
4. хотя я не совсем уверен, зачем вам это нужно в,
TableA
если вы всегда можете получить его изTableB
, как в вашем запросе выше5. @isaace Проблема в том, что TableB не содержит поля TransactionID. Каждый CustomerID содержит как минимум 1 TransactionID, но моя цель — добавить TransactionID в TableB. Общим знаменателем между таблицами A и TableB является CustomerID.
Ответ №1:
Вам нужно добавить поле в TableA. Вот документация о том, как это сделать в SQL Server. После этого вы используете Update
инструкцию, аналогичную Select
в вашем первоначальном сообщении.
Ответ №2:
не уверен насчет типа данных TransactionID, но это должно быть что-то вроде:
ALTER TABLE TableA
ADD TransactionID varchar(30);
UPDATE a
SET a.TransactionID = b.TransactionID
FROM TableA a
JOIN TableB b
ON a.CustomerID = b.CustomerID
Ответ №3:
Похоже, сначала вам нужно добавить столбец в TableA
. Это синтаксис
ALTER TABLE table_name
ADD column_name datatype;
И затем вы можете выполнить этот запрос, чтобы импортировать данные из TableB в ваш новый столбец в TableA
UPDATE a
SET a.TransactionID = b.TransactionID
FROM TableA a
INNER JOIN TableB b ON a.CustomerID = b.CustomerID