Сводка в SQL Server возвращает две строки вместо одной - PullRequest
0 голосов
/ 04 октября 2019

Я вращаюсь по столбцу, и он возвращает две строки вместо одной, помогите.

Моя таблица:

Key  Name  column_title  column_answer  Date
--------------------------------------------------
101  Stacy column1        answer1        08/9/2019
101  Stacy column2        answer2        08/9/2019

Запрос:

DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX);

SET @columns = N'';

SELECT @columns += N', ' + QUOTENAME(column_title)
FROM (SELECT column_title from ##Questions) AS x;

SELECT @columns;
SELECT STUFF(@columns, 1, 2, '');
SELECT STUFF(REPLACE(@columns, ', [', ',['), 1, 1, '');

SET @sql = 
        N'SELECT 
              key, name, ' + STUFF(@columns, 1, 2, '') + '
    INTO ####TempTable
    FROM
        (SELECT * FROM Mytable) AS j
    PIVOT
        (MAX(column_answer) 
            FOR column_title IN (' + STUFF(REPLACE(@columns, ', [', ',['), 1, 1, '') + ')) AS p ';


    EXEC sp_executesql @sql;

Этот оператор возвращает две строки:

Key  Name  Column1   column2      Date
-------------------------------------------
101  Stacy answer1   null        08/9/2019
101  Stacy null      answer2     08/9/2019

Я хочу получить:

Key  Name  Column1   column2      Date
-------------------------------------------
101  Stacy answer1   answer2      08/9/2019
...