交叉表使用

原创 2005年02月26日 14:29:00

-----交叉表应用实例

CREATE TABLE [Test] (

       [id] [int] IDENTITY (1, 1) NOT NULL ,

       [name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

       [subject] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

       [Source] [numeric](18, 0) NULL

) ON [PRIMARY]

GO

INSERT INTO [test] ([name],[subject],[Source]) values (N'张三',N'语文',60)

INSERT INTO [test] ([name],[subject],[Source]) values (N'李四',N'数学',70)

INSERT INTO [test] ([name],[subject],[Source]) values (N'王五',N'英语',80)

INSERT INTO [test] ([name],[subject],[Source]) values (N'王五',N'数学',75)

INSERT INTO [test] ([name],[subject],[Source]) values (N'王五',N'语文',57)

INSERT INTO [test] ([name],[subject],[Source]) values (N'李四',N'语文',80)

INSERT INTO [test] ([name],[subject],[Source]) values (N'张三',N'英语',100)

Go


 ---以下为交叉表的列数是确定的

select name,sum(case subject when '数学' then source else 0 end) as '数学',

            sum(case subject when '英语' then source else 0 end) as '英语',

            sum(case subject when '语文' then source else 0 end) as '语文'

from test
group by name

 ---以下为交叉表的列数是不确定的  


declare @sql varchar(8000)

set @sql = 'select name,'
 

select @sql = @sql + 'sum(case subject when '''+subject+'''

                          then source else 0 end) as '''+subject+''','

  from (select distinct subject from test) as a

 

select @sql = left(@sql,len(@sql)-1) + ' from test group by name'
print (@sql)
exec(@sql)

go

SQL动态生成交叉表应用范例

交叉表的应用较为丰富,应用的方式与范围也是十分丰富。
  • qiushuisen
  • qiushuisen
  • 2014年10月17日 07:26
  • 1190

03_8Pandas_透视表与交叉表

import pandas as pd import numpy as npdataset_path = './starcraft.csv' df_data = pd.read_csv(dataset...
  • sinat_33761963
  • sinat_33761963
  • 2016年12月26日 17:13
  • 1383

交叉表、行列转换和交叉查询经典

交叉表、行列转换和交叉查询经典 一、什么是交叉表 “交叉表”对象是一个网格,用来根据...
  • cngkqy
  • cngkqy
  • 2007年12月05日 16:01
  • 16177

sqlserver一个动态交叉表的范例

社区问的人太多了,保存一个备用--建立测试环境set nocount oncreate table test(model varchar(20),date int ,qty int)insert in...
  • jinjazz
  • jinjazz
  • 2007年12月11日 09:55
  • 2648

ReportStudio入门教程(三十一) - 交叉表复杂表头

之前我们学习使用了列表的复杂表头,
  • jolingogo
  • jolingogo
  • 2014年04月16日 14:23
  • 3534

oracle 动态交叉查询 行列互换 oracle动态交叉表

问题描述如下: 有张表cityorder,有如下几个列:id,amount,city,date。表中有以下一些记录: id amount city date 1 12 001 08-11-1...
  • heicm
  • heicm
  • 2011年03月17日 15:36
  • 4495

ReportStudio入门教程(三十) - 交叉表

我们前面的例子都是使用列表,
  • jolingogo
  • jolingogo
  • 2014年04月16日 13:55
  • 2372

oracle 交叉表

在oracle的test表中插入记录INSERT INTO test values (N张三,N语文,60)INSERT INTO test values (N李四,N数学,70)INSERT INT...
  • cut007
  • cut007
  • 2007年04月04日 20:57
  • 1268

Excel二维交叉表恢复为一维表

工作中遇到这样的问题,收到Excel二维交叉表(数据透视表的结果,但已经保存为普通Excel),根据业务需要将其再次恢复为一维表。 如果数据量小的话,简单的复制剪切就可以了,如果数据量大的话,那么太...
  • bigheadsheep
  • bigheadsheep
  • 2012年06月29日 10:54
  • 5468

生成交叉表的SQL基本语句

在企业信息化管理中,经常需要提供交叉表形式的数据给管理层。 如以月份为纵轴,客户销售金额为横轴。 以下以SQL自带数据库举例列出SQL语句: --定义长度为8000的字符串变量@msql decla...
  • trywell
  • trywell
  • 2016年12月09日 08:49
  • 485
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:交叉表使用
举报原因:
原因补充:

(最多只允许输入30个字)