init lserp cs 5.0
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
|
||||
/****** Object: StoredProcedure [dbo].[CallWorkOrder] Script Date: 11/14/2016 11:46:41 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
/*
|
||||
行转列
|
||||
exec [P_RowToColumn] '','Online'
|
||||
*/
|
||||
ALTER PROCEDURE [dbo].[P_RowToColumn]
|
||||
@sql VARCHAR(3000),
|
||||
@yjcolumn VARCHAR(50), -- 分组字段
|
||||
@tjfield VARCHAR(50), -- 统计字段
|
||||
@tjType VARCHAR(50)='MAX', -- 统计类型,默认为Sum,支持MAX、MIN等
|
||||
@order VARCHAR(100)=''
|
||||
AS
|
||||
DECLARE @str_column NVARCHAR(500),@sql_fields NVARCHAR(3000)
|
||||
|
||||
SET @sql_fields = 'WITH MyField AS('+@sql+')
|
||||
SELECT @str_column=ISNULL(@str_column+'','','''')+ QUOTENAME('+@yjcolumn+') FROM MyField GROUP BY '+@yjcolumn
|
||||
|
||||
--PRINT @sql_fields
|
||||
|
||||
EXEC SP_EXECUTESQL @sql_fields,N'@str_column VARCHAR(500) OUTPUT',@str_column OUTPUT
|
||||
|
||||
--print @str_column
|
||||
IF ISNULL(@str_column,'') <> ''
|
||||
BEGIN
|
||||
|
||||
SET @sql_fields=';WITH MyTab AS(
|
||||
'+@sql+'
|
||||
)
|
||||
SELECT * FROM MyTab PIVOT('+@tjType+'('+@tjfield+') FOR '+@yjcolumn+' IN('+@str_column+') ) AS T'
|
||||
|
||||
--print @sql_fields
|
||||
|
||||
EXEC(@sql_fields)
|
||||
END
|
||||
ELSE
|
||||
EXEC (@sql)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user