在企业信息化管理中,经常需要提供交叉表形式的数据给管理层。
如以月份为纵轴,客户销售金额为横轴。
以下以SQL自带数据库举例列出SQL语句:

--定义长度为8000的字符串变量@msql
declare @msql varchar(8000)
--横轴字段
select @msql=' select month(orderdate) as 月份'
    --从订单表中取出一定条件(where orderdate between '1996-07-01' and '1996-07-31')范围内
    --所有客户ID并连接至@msql
select @msql=@msql+',Sum(CASE WHEN Customerid='''+rtrim(customerid)+''' then Freight else 0 end) as ['+rtrim(customerid)+']'
           from (select distinct Customerid from orders where orderdate between '1996-07-01' and '1996-07-31')A
    --上面语句是生成交叉表横轴的关键
    --在一定条件范围取数并按横轴字段汇总
select @msql=@msql+' from orders where orderdate between ''1996-07-01'' and ''1996-07-31'' group by  month(orderdate)'  
    --执行
EXEC (@MSQL)

总结:1.生成的字符串长度不能超过8000,否则出错
      2.以上是最基本的生成交叉表的SQL语句,在实际应用中,可加入多重条件、左右关联等等从而得到更复杂的结果

生成交叉表的SQL基本语句相关推荐

  1. 数据库创建(利用写好的数据库表生成创建表的sql语句+利用生成的数据库创建表加同步数据sql)

    一.利用写好的数据库表生成创建表的sql语句 1.简单创建一个数据库,并建一个表,并编辑数据. a.建库 b.建表 c.编辑表,保存时输入表名 d.刷新一下,出来了 e.转存导出sql文件. 二.利用 ...

  2. 生成交叉表的简单通用存储过程

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_qry]') and OBJECTPROPERTY(id ...

  3. 如何生成表_SPSS简单操作 | 如何生成交叉表?

    (。・∀・)嗨!学堂君,今天讲什么内容呢? 今天要分享的是如何生成交叉表. 什么是交叉表呀? 如果说交叉表可能大家会比较陌生,但是说到列联表可能就会比较熟悉.交叉表是我们在操作SPSS进行列联表分析时 ...

  4. mysql 交叉表 存储过程_用于生成交叉表的存储过程的存储过程

    以前总是在网上搜一些交叉表生成的相关代码 但是使用起来总是很复杂 看看 刚出炉的东西对你来说是不是有所帮助 :_) 先看看下一个生成的存储过程 :SQLServer2000 Create Proced ...

  5. SqlServer生成交叉表大全

     SqlServer如何生成动态交叉表查询 VB+MS SqlServer,是我们目前开发数据库应用系统最常用的模式,翻翻以前的老帖子,有一些SqlServer的问题经常被提出来,但正确解答甚少,现把 ...

  6. 数据恢复利器:通过frm文件恢复数据表的sql结构语句

    如果数据库崩溃又没有做数据备份,只有.frm表结构文件,怎么做表的结构恢复?下面介绍两种方法 了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.fr ...

  7. mysql批量生成修改表和列注释语句

    当我们在一个数据库修改完备注后,需要将其导致另一个服务器上的数据库中,需要生成批量执行语句,方便操作,注意用change 或modified 进行列的属性修改时,没有写全的话会造成其它属性的丢失,如 ...

  8. excel自动生成创建表sql语句

    Sub 选项按钮4_Click()Dim sqlStr, sqlTemp, pkStr, columnName, columnType, columnLength, isPk, notExistTab ...

  9. mysql基本表管理sql语句

    管理表记录 insert into 表名 values(字段值列表) 增 select 字段名 -字段N from 表名: 查 select 字段名.. 字段N from表名 where 条件 upd ...

  10. 数据库系统原理与应用教程(052)—— MySQL 的数据完整性(十四):交叉表查询(行列转换)

    数据库系统原理与应用教程(052)-- MySQL 的数据完整性(十四):交叉表查询(行列转换) 目录 数据库系统原理与应用教程(052)-- MySQL 的数据完整性(十四):交叉表查询(行列转换) ...

最新文章

  1. python操作Mysql基础
  2. f_bfree和f_bavail的区别
  3. 在sql中将表建在别的构件中用什么语句_SQL实战
  4. C语言(第二章):数据类型、运算符、表达式
  5. 数独游戏技巧从入门到精通_中国茶艺技巧:500集从入门到精通教程,视频+素材+笔记...
  6. 解线性方程组的迭代法(高斯-塞德尔迭代法)
  7. c语言实现linux下的top命令来获取cpu利用率_Linux性能调优之CPU性能优化
  8. 郝斌数据结构教学视频下载地址
  9. C语言实现抽签小功能
  10. 嵌入式在生活中的应用
  11. python访问陌生人qq空间_自己的QQ空间怎么不让陌生人进入—设置访问权限
  12. AXI协议中的BURST
  13. 英语知识系列:单词中元音字母发音规律
  14. 基于python代码的3D地图可视化
  15. 使用Linux命令cURL实现文件定时上传到ftp服务器的程序
  16. 软件测试之黑盒测试方法介绍及测试用例练习
  17. vs,vs code,Dev
  18. 树莓派3B+如何完成对产品的升级改造
  19. Tesra超算网络AI训练的使用流程
  20. 华为服务器带外如何修改,华为服务器带外地址修改器

热门文章

  1. linux安装gcc等程序包,Linux手动安装gcc-8.3.0
  2. python urlretrieve下载进度_python《文件下载进度显示》 urllib.request.urlretrieve(self.__path,self.__name,jindu)...
  3. 最详细的java思维导图
  4. Java性能优化的七个方向
  5. 用jsp编写一个猜26个小写英文字母的web小游戏
  6. [计算机网络][内容梳理]四、网络层
  7. JAVA开发一个合并单元格报表_9、docx4j实现动态表格(编程式)单元格合并
  8. 【C语言】C语言读取文本文件
  9. 2022年深圳有哪些好玩的小镇古城推荐
  10. IDEA 删除本地文件时,SVN服务器上文件无法删除解决办法