Я хотел бы объединить результаты динамического разворота с другой таблицей (основываясь на моем Q по этому вопросу).Имена столбцов являются динамическими, поэтому заранее не известны, и результат не может быть прочитан в табличную переменную или что-то подобное.
Например, сводная таблица может привести к такому результату:
EXEC sp_executesql @Query -- INTO @Result
ID | R1 | R2
---+----+----
1 | 50 | 3
2 | 9 | 7
3 | 38 | 21
Что я хотел бы объединить с другими столбцами данных:
SELECT *
FROM @Result r
JOIN Table t
ON r.ID = t.ID
ID | R1 | R2 | T1
---+----+----+----
1 | 50 | 3 | 40
2 | 9 | 7 | 1
3 | 38 | 21 | 12
Возможны ли подобные запросы даже с SQL Server?Справедливости ради, имена столбцов не являются полностью неизвестными, они передаются динамическому запросу в списке, подобном [R1],[R2]...
Вот кое-что, с чем можно поиграть.Это приводит к двум примерным наборам результатов отдельно.
DECLARE @Columns nvarchar(MAX) = '[R1],[R2]';
DECLARE @Query nvarchar(MAX);
SET @Query = N'SELECT * FROM (VALUES (1, 50, 3), (2, 9, 7), (3, 38, 21)) AS X(ID, R1, R2)';
DECLARE @Table table (ID int unique not null, T1 int null)
INSERT INTO @Table (ID, T1) VALUES
(1, 40), (2, 1), (3, 12);
SELECT @Columns;
EXEC sp_executesql @Query;
SELECT * FROM @Table;