SQL Pivot с несколькими заголовками - PullRequest
0 голосов
/ 15 ноября 2018

Я делаю сводку с несколькими заголовками в SP. Я поворачиваю дату в 3 столбца (WLQ, TQ & FLQ).

Проблема после выполнения поворота заключается в том, что столбец отображается группой. Пример вывода: (12-4_WLQ, 13-4_WLQ, 14-4_WLQ, 12-4_TQ, 13-4_TQ, 14-4_TQ, 12-4_FLQ, 13-4_FLQ, 14-4_FLQ).

как я хочу отобразить вывод по дате, например: (12-4_WLQ, 12-4_TQ, 12-4_FLQ, 13-4_WLQ, 13-4_TQ, 13-4_FLQ, 14-4_WFLQ, 14-4_TQ, 14-4_FLQ)

Вот мой код:

ALTER PROCEDURE [dbo].[EXEC_DATETM_SP]

AS

BEGIN

SET NOCOUNT ON;

DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
    DECLARE @startdt DATETIME, @enddt DATETIME, @QueryCol NVARCHAR(MAX), @QueryCol2 NVARCHAR(MAX), @QueryCol3 NVARCHAR(MAX)
SET @startdt = '04/12/2018'
SET @enddt = '04/17/2018'

WHILE @startdt <= @enddt
BEGIN
    SET @QueryCol=isnull(@QueryCol, '')+QUOTENAME(convert(nvarchar(20), @startdt, 101)+'_WLQ')+(CASE WHEN @startdt<>@enddt THEN ',' ELSE '' END)
    SET @QueryCol2=isnull(@QueryCol2, '')+QUOTENAME(convert(nvarchar(20), @startdt, 101)+'_TQ')+(CASE WHEN @startdt<>@enddt THEN ',' ELSE '' END)
    SET @QueryCol3=isnull(@QueryCol3, '')+QUOTENAME(convert(nvarchar(20), @startdt, 101)+'_FLQ')+(CASE WHEN @startdt<>@enddt THEN ',' ELSE '' END)

    SET @startdt =  @startdt + 1
END
    set @DynamicPivotQuery=
    N'
    select 
    [KT_HYOU_NAME],
    [KT_KEIRO_NAME],
    [KT_GUN_NO],
    [TUKA_JUN],
    [KT_CD],
    [SG_KU_CD],
    ' + @QueryCol + ',
    ' + @QueryCol2 + ',
    ' + @QueryCol3 + '
        from 
    (
        SELECT * FROM V_DATEBYWLQ
    )s
    pivot (sum (WORK_LOT_QTY) for 
    [EXEC_DATETMM] in ('+@QueryCol+')) as AvgWidgetsPerDayPerEmp
    pivot (sum (TARGET_QTY) for 
    [EXEC_DATETMN] in ('+@QueryCol2+')) as AvgWidgetsPerDayPerEmp2
    pivot (sum (FIN_LOT_QTY) for 
    [EXEC_DATETMO] in ('+@QueryCol3+')) as AvgWidgetsPerDayPerEmp3
    '
EXEC sp_executesql @DynamicPivotQuery
END
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...