Мне нужна помощь в CTE для отображения имени заголовка из значения таблицы - PullRequest
0 голосов
/ 30 октября 2019

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

Я сделал ниже и разделил категорию с номером строки.

DROP TABLE #temp
CREATE TABLE #temp ( [Description] VARCHAR(100), SubDescription VARCHAR(100), IsOMExceptionRequired bit,IsAMB bit,IsARS bit,escalationtypeid int, CategorySortOrder int, SubcategorySortorder int);

INSERT INTO #temp ([Description], SubDescription, IsOMExceptionRequired ,IsAMB,IsARS,escalationtypeid,CategorySortOrder,SubcategorySortorder)
SELECT C.Description,s.Description, S.IsOMExceptionRequired,s.IsAMB,s.IsARS,CEM.escalationtypeid, c.SortOrder,s.SortOrder
FROM category C
INNER JOIN SubCategory S on C.CategoryID =S.CategoryID 
INNER JOIN CategoryEscalationTypeMap CEM on CEM.CategoryID= C.CategoryID
WHERE CEM.escalationtypeid=3 and CEM.IsActive =1 and C.IsActive=1 and S.IsActive=1
order by CEM.escalationtypeid, C.sortorder,S.sortorder; 
--select * from #temp;
WITH Temp
AS (
    SELECT
        Description,
        SubDescription,
        ROW_NUMBER() OVER ( PARTITION BY Description
ORDER BY Description ) rownumber,
IsOMExceptionRequired,
IsAMB,
IsARS,
escalationtypeid,
CategorySortOrder,
SubcategorySortorder
    FROM #Temp
)
SELECT
    CASE WHEN Temp.rownumber = 1 THEN Description ELSE '' END [Description],
    rownumber,
    SubDescription,
    CASE WHEN IsOMExceptionRequired = 1 THEN 'YES' ELSE 'N/A' END xxx,
IsAMB,
IsARS,
escalationtypeid,
CategorySortOrder,
SubcategorySortorder
FROM Temp
order by escalationtypeid,CategorySortOrder,SubcategorySortorder;

, но на самом деле мой результат должен быть таким, как показано ниже.

enter image description here

1 Ответ

0 голосов
/ 30 октября 2019

Если вам действительно нужно возвращать динамические имена столбцов, создайте динамический запрос. Создайте nvarchar, содержащий ваш запрос, нарисуйте заголовок столбца из соответствующих источников и выполните его с помощью sp_executesql .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...