[转载]SQL行转列,数据统计

SELECT 
        CreateTime as '日期', 
        isnull( [支付宝],0) as '支付宝' , 
        isnull( [手机短信],0) as '手机短信',
        isnull([工商银行卡],0)as '工商银行' , 
        isnull( [建设银行卡],0) as '建设银行', 
        isnull( [支付宝],0) + isnull( [手机短信],0)+isnull([工商银行卡],0)+ isnull( [建设银行卡],0) as '合计'
FROM
(
    SELECT CONVERT(VARCHAR(10), CreateTime, 120) AS CreateTime,PayType, Money
    FROM Inpours
) P
PIVOT (
        SUM(Money)
            FOR PayType IN
            ( [支付宝], [手机短信], [工商银行卡], [建设银行卡])
      ) AS T
ORDER BY CreateTime

结果如图:

  

时间: 2024-10-05 11:41:21

[转载]SQL行转列,数据统计的相关文章

[转载]SQL行转列,列转行

原文地址:http://www.cnblogs.com/kerrycode/archive/2010/07/28/1786547.html  行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现. 用传统的方法,比较好理解.层次清晰,而且比较习惯. 但是PIVOT .UNPIVOT提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单.更具可读性.下面我们通过

数据库行转列-SQL行转列的问题,求各位大大帮助下

问题描述 SQL行转列的问题,求各位大大帮助下 数据库中保存的是: 单据类型 审核级次 审核人 A 1级 张三 A 1级 李四 A 2级 王五 求查出的数据为: 单据类型 1级审核人 2级审核人 A 张三 王五 A 李四 该如何写代码啊,小白求助!!

sql行转列,(不写死)

问题描述 sql行转列,(不写死) 图一为数据结果: 想要图二的效果: 要求:不写死即不出现具体的查询出的数据的内容 解决方案 这个我没怎么搞过,不过你可以参照这个试一试.http://www.williamsang.com/archives/1508.html 解决方案二: 说实话不太明白你的意思. 行转列.你不规定列名.后台怎么知道把哪列转换成一行? 如果你想隐蔽的话.可以先用视图再用行转列 解决方案三: 不写死,只能用存储过程 或者 code 实现!单SQL应该是比较难!

SQL行转列

SQL行转列是比较经典的问题: 比如有如下数据表,有如下某一款号(表1):    颜色  尺码  库存     红色    S    10    红色    M    80    白色    L    50    白色    S    60 要将上面的表转化为如下格式(表2):  颜色    S  M  L  红色  10  80  0   白色  60  0  50   动态sql: create  table #tbl_0 (    color nvarchar(12),    nsize

Excel表格怎么把一列数据转换为多行多列数据

  下面为你介绍Excel表格怎么把一列数据转换为多行多列数据?不需要复杂的公式输入,只是简单的鼠标操作即可完成. 1.将一列60个数据转换为5行12列. 首先,在B1格输入"A1",B2格输入"A13",然后选中B1.B2,将鼠标移到选中框的右下角(此时鼠标变为"+"形,下同),按住左键不放将框下拉至B5处.此时B3.B4.B5格将分别填充"A25"."A37"."A49". 列表格展

SQL行转列和列转行代码详解

行列互转,是一个经常遇到的需求.实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现. 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和总结过.为了加深认识,再总结一次. 行列互转,可以分为静态互转,即事先就知道要处理多少行(列);动态互转,事先不知道处理多少行(列). --创建测试环境 USE tempdb; GO IF OBJECT_ID('dbo.Orders') IS NOT NULL DROP TABLE dbo.Orde

sql 行转列 PIVOT 列转行 UNPIVOT

原文:sql 行转列 PIVOT 列转行 UNPIVOT 一: 现有表一(t_table1),想转为表二(t_table2)的格式. 表一: 年 公司 收入 2013 公司1 12 2013 公司2 22 2013 公司3 32 2012 公司1 42 2012 公司2 52 2012 公司3 62     表二: 年 公司1 公司2 公司3 2012 42 52 62 2013 12 22 32     可使用sql2005之后提供的PIVOT   具体操作如下:   select  *  f

sql 行转列总结

原文:sql 行转列总结 PIVOT UNPIVOT的用法 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2

SQL行转列汇总

原文:SQL行转列汇总 PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P 注意:PIVOT.UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性->选项->兼容级别改为   90 ) SQL2008 中可以直接使用 完整语法: table_source PIVOT( 聚合函数(value_colu