2016-01-03 6 views
1

Я играл с SQL Fiddle, и я очень близок к тому, чтобы быть сделанным - мне просто нужна помощь по возврату данных столбца (я думаю, что заголовок varchar с двумя слова (пример: High Value) бросает егоSQL pivot columns null (код/​​результаты включены)

Это запрос я борюсь с:.

SELECT Velocity 
    , [Very High] 
    , High 
    , [Medium] 
    , [Low] 
    , [Very Low] 
    , [Total] 
FROM (
    SELECT CASE 
     WHEN GROUPING(velocity) = 0 THEN CAST(velocity AS CHAR(7)) 
     ELSE 'Total' 
    END AS velocity 
    , CASE 
     WHEN GROUPING(volume) = 0 THEN CAST(volume AS CHAR(7)) 
     ELSE 'Total' 
    END AS volume 
    , SUM(Sales) AS Sales 
    FROM test1 
    GROUP BY velocity, volume 
    WITH CUBE 
) AS s 
PIVOT(SUM(Sales) FOR volume IN ([Very High], [High], [Medium], [Low], [Very Low], [Total])) AS p; 

Я ожидал увидеть этот результат: Result wanted here:

Добавление SQL Fiddle

+0

, даже если скрипка поможет, вам нужно добавить больше информации в свой вопрос, потому что когда-нибудь скрипт sql не работает, и ppl не сможет его увидеть. –

+0

Извинения! Короче говоря, под моими столбцами «Очень высокий» и «Очень низкий», я получаю значения NULL в моем запросе. Тем не менее под столбцом «Высокий» или «Средний» я возвращаю значения просто отлично. – user5741399

+0

SELECT Velocity, [Very High], High, [Medium], [Low], [Very Low], [Total] FROM ( SELECT CASE WHEN GROUPING (velocity) = 0 THEN CAST (скорость AS CHAR (7)) ELSE 'Total' END AS speed, CASE WHEN GROUPING (объем) = 0 THEN CAST (объем AS CHAR (7)) ELSE 'Total' END AS volume, SUM (Sales) AS Sales FROM test1 GROUP BY velocity , объем С CUBE ) AS s PIVOT (SUM (Sales) ДЛЯ объема IN ([Очень высокий], [Высокий], [Средний], [Низкий], [Очень низкий], [Всего])) AS p – user5741399

ответ

1

Я нашел ошибку в вашем SQL-запросе. Вам нужно изменить CAST(volume AS CHAR(7)) to CAST(volume AS CHAR(12)) В противном случае у вас есть значения в вашей внутренней таблице темпа, такие как «Very Hi» и «Very Lo».

+0

Исправить !!! Огромное спасибо. как я могу дать вам кредит на ответ? – user5741399

+0

Просто проверьте мой ответ как полезный или как решение вашей задачи – fabulaspb