set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[FeeBudgetYear_RowColumnChang]
@Curryear varchar(4),@DeptCode varchar(6)
AS
declare @SQL varchar(8000)
,@FieldFZ VARCHAR(50) --分组字段
,@FieldJS varchar(50) --计算字段
,@TMPsql varchar(8000)--临时字符串
set @FieldFZ='CurrMonth'
set @FieldJS='BudgetMoney'
set @TMPsql=''
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select @TMPsql=@TMPsql+',['+a.CurrMonth+']=sum(case '+@FieldFZ+' when '+a.CurrMonth+' then '+@FieldJS+' else 0 end)'
from (
select '1' as CurrMonth
union
select '2' as CurrMonth
UNION
select '3' as CurrMonth
union
select '4' as CurrMonth
union
select '5' as CurrMonth
union
select '6' as CurrMonth
union
select '7' as CurrMonth
union
select '8' as CurrMonth
union
select '9' as CurrMonth
union
select '10' as CurrMonth
union
select '11' as CurrMonth
union
select '12' as CurrMonth
) a
--print @TMPsql
--DECLARE @Curryear int
-- ,@DeptID VARCHAR(6)
--
--SET @Curryear=@year
--set @DeptID=@DeptCode
set @SQL='
select b.ItemName,a.feeid'+@TMPsql+'
from dbo.FeeBudgetYear a,FeeItems b where a.FeeID=b.FeeID and a.CurrYear='''+@Curryear+''' and a.DeptCode='''+@DeptCode+'''
group by a.feeid,b.ItemName'
--print
exec (@SQL)
END
select b.ItemName,a.feeid,[1]=sum(case CurrMonth when 1 then BudgetMoney else 0 end),[10]=sum(case CurrMonth when 10 then BudgetMoney else 0 end),[11]=sum(case CurrMonth when 11 then BudgetMoney else 0 end),[12]=sum(case CurrMonth when 12 then BudgetMoney else 0 end),[2]=sum(case CurrMonth when 2 then BudgetMoney else 0 end),[3]=sum(case CurrMonth when 3 then BudgetMoney else 0 end),[4]=sum(case CurrMonth when 4 then BudgetMoney else 0 end),[5]=sum(case CurrMonth when 5 then BudgetMoney else 0 end),[6]=sum(case CurrMonth when 6 then BudgetMoney else 0 end),[7]=sum(case CurrMonth when 7 then BudgetMoney else 0 end),[8]=sum(case CurrMonth when 8 then BudgetMoney else 0 end),[9]=sum(case CurrMonth when 9 then BudgetMoney else 0 end) from dbo.FeeBudgetYear a,FeeItems b where a.FeeID=b.FeeID and a.CurrYear='2009' and a.DeptCode='BJ001' group by a.feeid,b.ItemName,b.ID
分享到:
相关推荐
资源提供实现行列转置功能,采用Html代码table进行行列转换,并可通过ajax异步调用后台数据,结合js,动态实现行列转置。
几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维数组,单列转多列等。均含示例数据,如: 250B的文本测试数据,晶振微调后的频率测试数据等。 另外还有EXCEL的常用命令语句精选。
行列互换工具毫秒级_V2.2.2行列转换
sql行列转换扩展 明源内部学习资料
oracle行列转换,通过实例来实现表的行列转换
MSSQL行列转换存储过程MSSQL行列转换存储过程
sql server 行列转换.
EXCEL 行列转换工具
SQL语句行列转换(附带数据库、表、视图操作) ,不错的文档。
oracle sql行列转换
这个Python自动化办公源码是一个用于将Excel文件中的行列进行转置(转置)的工具。在处理Excel数据时,我们经常需要对数据进行行列转换,以便更好地分析和展示数据。这个源码可以帮助我们快速实现这一功能,提高工作...
Oracle行列转换,一个挺经典的例子,值得学习和思考……
行列转换问题,不要积分
行列转换SQL存储过程代码,简单的将行数据转换为列展示
通过一条查询语句,进行行列转换。例如 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ---- 李四 ...
行列转换的小工具 可以进行行列互转,非常好用,
动态 实现 SQL 2008行列转换的pivot
在EXCEL中可以方便进行行列转换 例如: 1 a 1 b 2 a 可转化为: 1 a b 2 a 反之亦可以,便于进行统计