`

行列转置

    博客分类:
  • sql
阅读更多
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
分享到:
评论

相关推荐

    table 行列转置demo

    下面我们将详细探讨这些技术以及它们在行列转置中的应用。 首先,HTML是网页的基础结构语言,用于定义页面内容的布局和结构。在HTML中,`<table>`元素用于创建表格,包含`<tr>`(行)、`<th>`(表头单元格)和`<td>...

    几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维,单列转多列等

    几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维数组,单列转多列等。均含示例数据,如: 250B的文本测试数据,晶振微调后的频率测试数据等。 另外还有EXCEL的常用命令语句精选。

    SQL 实现类似EXCEL行列转置

    在数据库中,我们经常需要将数据从行转换为列,或者从列转换为行,这种操作称为行列转置。这种操作在 Excel 中非常常见,但是在 SQL 中实现类似的功能却需要一些技巧。下面我们将介绍如何使用动态或静态 SQL 实现...

    WPS如何对表格进行行列转置.docx

    WPS 表格行列转置操作指南 WPS 是一个功能强大的office 软件,具有丰富的表格编辑功能,其中一项重要的功能就是表格行列转置操作。表格行列转置操作可以将已经建立的表格的行和列进行交换,以满足不同的需求和应用...

    Excel行列转换工具

    3. **执行转换**:点击"Excel行列转换工具"的按钮,软件会自动识别并执行转置操作,原数据将从行转换为列,或者从列转换为行。如果需要,可以预览转换结果。 4. **保存结果**:确认转换无误后,可以选择性地将结果...

    sql行列转换扩展

    SQL 行列转换扩展 SQL 行列转换扩展是指将数据库表中的行数据转换为列数据,或者将列数据转换为行数据的操作。这种操作在数据分析和报表生成中非常常见。在本文中,我们将介绍两种类型的行列转换扩展方法:行转列...

    oracle行列转换例子

    在Oracle数据库中,行列转换是一种常见的数据操作需求,主要用于将数据从行的形式转换为列的形式,或者反之。这种转换在数据分析、报表制作等场景中尤为常见。本文将深入解析一个Oracle行列转换的例子,通过详细解释...

    行列互换工具毫秒级_V2.2.2行列转换.xlsm

    行列互换工具毫秒级_V2.2.2行列转换

    sql server 行列转换

    ### SQL Server 行列转换知识点解析 #### 一、行列转换概述 在处理数据库查询时,我们经常会遇到需要将表中的行数据转换为列数据的需求,这种操作通常被称为“行列转换”。例如,当我们需要汇总不同类别的数据并将...

    excel行列转换程序

    ### Excel 行列转换程序详解 #### 一、引言 在数据分析领域,数据的排列方式对于后续的数据处理和分析有着至关重要的作用。有时我们需要将数据从行转换为列(行转列),或者反过来(列转行),以适应不同的分析...

    oracle行列转换总结

    在Oracle数据库中,行列转换是一项常用且强大的功能,它允许数据在不同的维度上进行转换,以便于数据分析和报告。本文将深入探讨Oracle中实现行列转换的几种方法,包括使用`UNION ALL`、`MODEL`子句以及集合类型(`...

    Oracle行列转换

    在处理数据时,有时我们需要将数据从行格式转换为列格式,或者反之,这一过程被称为“行列转换”。Oracle提供了多种方法来实现这样的转换,这对于数据分析、报表制作以及优化查询性能等场景非常有用。下面我们将深入...

    Excel2021行列转置的操作方法.docx

    行列转置是指将原始数据从行方向转换到列方向,或者从列方向转换到行方向。这样可以更方便地查看和分析数据。本文将详细介绍 Excel 2021 中的行列转置操作方法。 一、准备数据 在进行行列转置之前,需要首先准备...

    oracle行列转换实例

    【Oracle 行列转换实例】 在数据库管理中,有时我们需要将数据表的行与列进行转换,以便于数据分析和报表展示。Oracle 提供了一种高效的方法,即使用分析函数来实现这种行列转换。分析函数主要设计用于处理累计计算...

    SQL语句行列转换(附带数据库、表、视图操作)

    SQL 语句行列转换(附带数据库、表、视图操作) SQL 语句行列转换是数据库管理系统中的一种常见操作,它可以将数据从行转换为列,或者从列转换为行。在这个过程中,需要使用数据库管理语言(Database Management ...

    MSSQL行列转换存储过程

    其中,行列转换是数据处理中常见的一种需求,尤其是在进行数据分析、报表生成等场景时。本文将深入解析MSSQL中实现行列转换的存储过程及其工作原理,帮助读者理解和掌握这一关键技术。 ### MSSQL行列转换存储过程 ...

    oracle sql 行列转换

    在Oracle SQL中,行列转换是一种常见的数据操作需求,主要用于将数据表中的行转换为列,或将列转换为行,以此来满足不同的数据展示或分析需求。这种转换在处理多维度数据、汇总数据或是进行复杂查询时特别有用。下面...

    行列转换SQL存储过程代码

    ### 行列转换SQL存储过程代码解析 #### 核心知识点概述 本篇文章将深入探讨一个SQL存储过程的实现方式,该存储过程主要用于完成“行转列”(即行列转换)的操作。通过这种方式,可以有效地将数据库表中的行数据...

    一道java面试题 行列转换

    ### Java面试题:行列转换详解 #### 一、问题背景 在进行数据分析或者报表处理时,经常需要将数据从一种格式转换成另一种格式以便更好地展示或分析。其中一种常见的转换需求是从行转列(即行列转换)。本篇文章将...

Global site tag (gtag.js) - Google Analytics