2015-07-06 6 views
0

У меня есть таблица как tab1, и я хочу получить результат, например, с помощью табло-2 для продаж по сети (NPS) для каждого продавца, а значение месяца 1 в jan, аналогично значению месяца 2 в месяце и месяце 3 в марте.Сводка с суммарной суммой

FY является суммой Январе + + фев мар (NPS)

DECLARE @TAB1 TABLE 
(
    YEAR NUMERIC (4, 0), 
    MONTH NUMERIC (4, 0), 
    SMC CHAR (1), 
    SG CHAR (1), 
    SPN VARCHAR (10), 
    ISGR FLOAT, 
    NPS FLOAT 
) 


INSERT @TAB1 
SELECT 2015, 2, 1, 'C', 11, 1, 232745.61 
UNION ALL 
SELECT 2015, 1, 1, 'C', 11, 1, 246328.04 
UNION ALL 
SELECT 2015, 3, 1, 'C', 11, 1, 447488.01 

Ожидаемый результат:

YEAR|MONTH|SMC|SG|SPN|ISGR|JAN  |FEB  |MAR  |FY 
2015|1 |1 |C |11 |1 |246328.04|232745.61|447488.01|926561.66 

ответ

0

Попробуйте ниже запрос:

SELECT YEAR,SMC,SMC,SG,SPN,ISGR,[1] AS [JAN],[2] AS [FEB],[3] AS [MAR] , [1] + [2] + [3] AS [FY] 
FROM @TAB1 
PIVOT 
( 
    SUM(NPS) 
    FOR [MONTH] IN ([1],[2],[3]) 
)AS pvt 

Примечание: это не включите столбец [Месяц] в «Результат», поскольку он используется для поворота.

+0

Извините, но это не дает правильного результата. вместо правильного значения появляются много нулей. Значение доступно только в одном столбце. ЯН \t \t февраль MAR \t \t апрель май июнь \t \t \t июль август сентябрь \t \t \t октябрь ноябрь NULL, NULL, \t \t NULL, NULL, \t \t NULL, NULL, \t \t NULL, NULL, \t \t NULL, NULL, \t \t 793498,2. любое предложение. – user3751360

+0

Это прекрасно работает. проверьте этот скрипт sql: http://sqlfiddle.com/#!3/9eecb7/1562. если вы хотите добавить еще несколько месяцев, то его следует добавить в список 'FOR [MONTH] IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]) 'и выберите те, которые похожи на то, как я выбрал' [1] AS [JAN] '. –

+0

Привет Дипак, я сделал что-то вроде this.SELECT YEAR, SMC, SG, SPN, [ISGR], [1] AS [JAN], [2] AS [ТЭБ], [3] AS [MAR], [4] в качестве [APR], [5] AS [MAY], [6] AS [JUNE], [7] AS [ИЮЛЬ], [8] AS [AUG], [9] AS SEP, [10] AS OCT, [11] AS NOV, [12] AS DEC, [1] + [2] + [3] + [4] + [5] + [ 6] + [7] + [8] + [9] + [10] + [11] + [12] AS [FY] ОТ ТЕМП PIV OT ( SUM ([NPS]) FOR [MONTH] IN ([1], [2], [3], [4], [5], [6], [7], [8], [ 9], [10], [11], [12]) ) AS pvt, но получая NULL в поле месяца, пожалуйста, предложите. – user3751360

Смежные вопросы