Я пытаюсь извлечь данные из одной таблицы MS SQL Server, которая использует nvarchar (MAX) в качестве типа данных для нескольких столбцов и вставляет ее в таблицу, которая использует типы данных в качестве типа данных для сопоставления данных nvarchar (MAX). У меня есть пара таблиц (таблицы поиска?), Чтобы обеспечить значения int.Таблица заполнения таблицы поиска
Таблицы имеют следующие конструкции:
MobileClientTable (источник таблицы)
LookupWeather
LookupArea
DestinationTable
Некоторые выборки данных:
MobileClientTable
LookupWeather
LookupArea
Так что я хотел бы строк в таблице назначения, как это:
ID Area Weather Details
1 4 1 None
где 4 и 1 для области и погоды получены из таблиц поиска.
My SQL является немного ржавый, но мне удалось получить, насколько этого SQL заявление:
USE [ETLTest]
GO
INSERT INTO DestinationTable(ID, Area, Weather, Details) VALUES
(
(SELECT ID FROM dbo.MobileClientTable),
(SELECT ID FROM dbo.LookupArea WHERE Area = dbo.MobileClientTable.Area),
(SELECT ID FROM dbo.LookupWeather WHERE Weather = dbo.MobileClientTable.Weather,
(SELECT AnyOtherDetails FROM dbo.MobileClientTable)
);
Конечно, синтаксис неверен. Я получаю следующие ошибки:
Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'SELECT'.
Msg 102, Level 15, State 1, Line 6
Incorrect syntax near ')'.
Msg 102, Level 15, State 1, Line 7
Incorrect syntax near '+'.
Msg 102, Level 15, State 1, Line 9
Incorrect syntax near ')'.
Где я иду не так?
ли INSERT INTO имя_таблицы (столбец-лист) SELECT ... – jarlh
@jarlh вы можете расширить, что, пожалуйста? Просто замена SELECT для VALUES не имеет значения – barry