【发布时间】:2016-10-11 11:10:08
【问题描述】:
我有这个存储过程:
USE [Baxe]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CreateTable]
AS
BEGIN
DECLARE @cols AS nvarchar( max) ,
@query AS nvarchar( max);
SET @cols = STUFF(( SELECT DISTINCT ',' + QUOTENAME( bmarke)
FROM subbuyer FOR XML PATH( '' ) , TYPE ).value( '.' , 'NVARCHAR(MAX)') , 1 , 1 , '');
SET @query = 'SELECT bdate, ' + @cols + ' from ( select bdate, bprice as q , bmarke from subbuyer ) x
pivot ( SUM(q)for bmarke in (' + @cols + ') ) p ';
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(convert(CHAR(10), bmarke, 120))
from subbuyer
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
PRINT @query;
PRINT @cols;
EXECUTE ( @query );
end
这给了我这个输出:
TOTAL 的最后一行是我需要添加的。我该怎么做?
【问题讨论】:
-
你的问题是什么?
-
关键字:
Group by ROLLUP -
还有
GROUP BY GROUPING SETS。
标签: sql sql-server sql-server-2008 tsql pivot