交叉表语句的实现

原创 2004年07月27日 13:34: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'

exec(@sql)

go

SQL连接查询语句(内、外、交叉和合并查询)

接触Sql语句时间挺长时间了,听他人说过sql语句的连接查询,但一直没有认真研究和使用过!!最近在公司实习,需要用到一些连接的语句,我也从中体会到连接查询带来的方便。 下面总结一下SQL连接查询...
  • u010011371
  • u010011371
  • 2016年01月27日 20:49
  • 4688

如何利用FastReport创建交叉报表?

转自:http://www.fastreportcn.com/Article/92.html 本文我们将创建一个交叉报表,用于显示员工四年中的工资。要创建交叉报表,我们需要使用到Fa...
  • cw370008359
  • cw370008359
  • 2014年12月11日 13:24
  • 1081

第八章 BIRT交叉报表

8.1 创建交叉报表和统计 一、创建报表和配置数据源 新建一个报表,改好自己的名字,然后next进行下一步。 选择一个空白报表(Blank Report),单击finish完成。 ...
  • huazaichang
  • huazaichang
  • 2013年01月25日 22:14
  • 1428

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

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

Mysql5 实现交叉表查询

交叉表、行列转换和交叉查询经典 一、什么是交叉表 “交叉表”对象是一个网格,用来根据指定的条件返回值。数据显示在压缩行和列中。这种格式易于比较数据并辨别其趋势。它由三个元素组成:     行...
  • a437629292
  • a437629292
  • 2015年12月15日 17:04
  • 1716

POSTGRESQL交叉表的实现

PostgreSQL 交叉表的实现枚举。
  • yueliangdao0608
  • yueliangdao0608
  • 2014年11月25日 11:02
  • 4033

水晶报表中几种交叉表的实现方法

水晶报表中几种交叉表的实现方法 交叉表,顾名思义,就是行和列交叉,用于将行上的数据,作为列指标来呈现。 用一个图直观的说明一下,就是将图1中的数据样式 最终呈现为如图2的效果 实际在使用中...
  • postfxj
  • postfxj
  • 2016年10月05日 09:39
  • 1077

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
  • 1222

JasperReport报表开发之转置交叉表

使用Jasper或BIRT等报表工具时,常会碰到一些非常规的统计,用报表工具本身或SQL都难以处理,比如源数据不符合交叉表的要求,需要转置后再呈现。集算器具有结构化强计算引擎,集成简单,可以协助报表工...
  • u012388497
  • u012388497
  • 2015年07月24日 09:05
  • 1182

9、spss做交叉表检验和对应分析

前边我们已经讲过很多内容了。回顾一下,主要有相关分析,假设检验,和各种回归。以及因子分析。我们知道,对于两组连续变量,我们可以通过假设检验来判断他们的分布是否相同,差异时候存在。不知道大家想过没有,如...
  • NIeson2012
  • NIeson2012
  • 2015年04月15日 15:35
  • 2976
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:交叉表语句的实现
举报原因:
原因补充:

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