2015-08-31 3 views
0

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

У меня есть следующий код

SELECT * FROM 
(
SELECT CR_RDate, PO_Num, RepName, CP_Amt, CS_ID, CS_Desc FROM dbo.v_CommRP 
) as 
PIVOT 
(
    SUM(CP_Amt) 
    FOR CS_Desc IN ([Cat1], Cat2], [Cat3]) 
) AS pv_CPR 
ORDER BY CR_RDate, PO_Num, CS_ID 

И это создает следующую сводную таблицу

CR_RDate PO_Num CR_Amt  RepName  CS_ID Cat1 Cat2 Cat3 
8/24/2015 166090 $100.00  Agent 1  2 NULL $35.00 NULL 
8/24/2015 166090 $100.00  Agent 2  3 NULL NULL $32.50 
8/24/2015 166090 $100.00  Agent 3  3 NULL NULL $32.50 
8/24/2015 2528968 $200.00  Agent 1  2 NULL $70.00 NULL 
8/24/2015 2528968 $200.00  Agent 2  3 NULL NULL $65.00 
8/24/2015 2528968 $200.00  Agent 3  3 NULL NULL $65.00 
8/31/2015 166090 $200.00  Agent 1  2 NULL $70.00 NULL 
8/31/2015 166090 $200.00  Agent 2  3 NULL NULL $65.00 
8/31/2015 166090 $200.00  Agent 3  3 NULL NULL $65.00 

Что мне нужно, это общая для Cat1, CAT2 и cat3. В идеале я смог бы получить промежуточный итог CR_Date и PO_Num.

Затем мне нужно положить это в стол или что-то, что может быть представлено на веб-сайте.

Благодарим за помощь.

ответ

0

Можете ли вы попробовать что-то вроде ниже и сообщить мне, если это работает. Я предполагаю, что столбцы Cat1, Cat2 и Cat3 являются varchar.

Я использовал ваш запрос в CTE и удалил '$' из столбцов Cat. Затем я взял их сумму и конкатенировал символ «$». Этот add/remove отлично работает в Oracle 12c.

with pv as 
( 
    SELECT * FROM 
    (
    SELECT CR_RDate, PO_Num, RepName, CP_Amt, CS_ID, CS_Desc FROM dbo.v_CommRP 
    ) as 
    PIVOT 
    (
     SUM(CP_Amt) 
     FOR CS_Desc IN ([Cat1], Cat2], [Cat3]) 
    ) AS pv_CPR 
    ORDER BY CR_RDate, PO_Num, CS_ID 

) 
select pv.*, '$'||cast(replace(coalesce(Cat1,'0'),'$','')+replace(coalesce(Cat2,'0'),'$','')+replace(coalesce(Cat3,''),'$','0') as varchar2(20)) as Total 
from pv 

Дайте мне знать, если это не поможет.

+0

Есть пара различий синтаксиса, но я получил эти отработанные и использовал этот код – Nestor

+0

Прохладный! Если это сработает для вас, пожалуйста, примите ответ, установив галочку слева от ответа. – Utsav

+0

Не совсем. Он не содержит итоговые значения столбцов, но итоговые значения строк – Nestor

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