Sql 包含列总数的透视表
我尝试了通过搜索找到的各种样本,但似乎无法得到我需要的结果 我有以下代码Sql 包含列总数的透视表,sql,sql-server-2012,pivot-table,summary,Sql,Sql Server 2012,Pivot Table,Summary,我尝试了通过搜索找到的各种样本,但似乎无法得到我需要的结果 我有以下代码 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 * 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_日期和PO_Num得到小计
然后我需要把它放在一张桌子上,或者放在一个网站上
谢谢你的帮助。你能试试下面的方法吗?如果可以的话,请告诉我。我假设列Cat1、Cat2和Cat3是varchar 我在CTE中使用了您的查询,并从Cat列中删除了“$”。然后我取了它们的和,并连接了“$”符号。此添加/删除在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
如果这不起作用,请告诉我 虽然有一些语法上的差异,但我已经解决了,并使用了这个codeCool!如果对你有效,请勾选答案左边的勾号,接受答案。它不提供列总计,但行总计如果我进行汇总查询和union all,我几乎可以得到我想要的。谢谢你的指点。