2017-01-11 1 views
0

Я использую Microsoft SQL Server 2016, чтобы попытаться объединить данные из представления и реальной таблицы в временную таблицу. View BoxAndChannel содержит имена таблицы, с которой я хочу объединить ее. У меня есть x экземпляров одной и той же таблицы, но с разными именами таблиц. Схема таблиц одинакова.Соединение между View и dymanic SQL-запросом с MS SQL Server 2016

У меня есть представление, которое содержит имена таблиц и столбцов, которые мне нужно получить. Основываясь на значениях из View BoxAndChannel, мне нужно будет выбрать данные из правильной таблицы и столбца.

РЕДАКТИРОВАТЬ:

Я хочу объединить каждую строку из этой таблицы BoxAndChannel enter image description here

С данными из колонки, как я ColumnName из таблицы, как в TableName.

Таблица 1 и Таблица 2 имеют одинаковую схему, и оба они выглядят как на рисунке ниже.

Table1/Table2

enter image description here

Надеюсь, в конечном итоге с чем-то вроде этого:

на основе ряда 1 из BoxAndChannel в первой картине. enter image description here

Подводя итог: я должен выбрать каждую строку из BoxAndChannel, а затем посмотрите на значение в TableName и ColumnName и выбрать значения из таблицы и столбца с тем же именем.

+0

Для объединения вам необходимо иметь такую ​​же структуру в обоих запросах select из вашего динамического sql. Я вижу только один столбец, это вызовет проблему в вашем запросе. –

+0

для 'union' вам нужен одинаковый столбец типа данных в том же порядке, чтобы он работал. Можете ли вы описать свое имя таблицы? – Utsav

+0

Пожалуйста, вставьте структуру TableName и зачем вам нужен динамический SQL-запрос, если у вас есть только одна таблица. Будет полезно, если вы покажете свой полный запрос, чтобы на него можно было ответить соответствующим образом. –

ответ

0

Вы не можете сделать это напрямую в одном запросе. Копирование его в таблицу temp, вероятно, является одной из ваших лучших ставок.

DECLARE @test TABLE (col1 INT, col2 INT, col3 INT) 

INSERT INTO @test 
EXEC sp_executesql N'select 1, 2, 3' 

SELECT 4, 5, 6 
UNION ALL 
SELECT * FROM @test 
Смежные вопросы