if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[单元]') and OBJECTPROPERTY(id, N'IsTable') = 1)
drop table [dbo].[单元]

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[统计]') and OBJECTPROPERTY(id, N'IsTable') = 1)
drop table [dbo].[统计]

GO

Create Table 单元(
 课程代码 int  NOT NULL ,
 课程名称 varchar(50)  NOT NULL ,
 单元 int  NOT NULL
)

Create Table 统计(
 ID int IDENTITY (1, 1)   NOT NULL ,
 院系名称 varchar(50)  NOT NULL ,
 助学点名称 varchar(50)  NOT NULL ,
 专业代码 varchar(50) ,
 专业名称 varchar(50) ,
 年级 int ,
 课程名称 varchar(50)  NOT NULL ,
 课程代码 int  NOT NULL ,
 人数 int  NOT NULL
)

GO

INSERT INTO 统计(院系名称,助学点名称,专业代码,专业名称,年级,课程代码,课程名称,人数)
SELECT 院系名称,助学点名称,专业代码,专业名称,年级,课程代码,课程名称,报考人数 FROM
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','EXCEL 8.0;IMEX=1;HDR=YES;DATABASE=E:\报考.XLS',长沙市$)

INSERT INTO 单元(课程代码,课程名称,单元)
SELECT 代码,课程名称,单元 FROM
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','EXCEL 8.0;IMEX=1;HDR=YES;DATABASE=E:\单元.XLS',单元$)

GO

SET NOCOUNT ON

--SELECT * FROM 统计

/**/
--按课程统计
SELECT t1.课程名称,t2.课程代码,t1.小计
FROM(
    SELECT
    (CASE GROUPING(课程名称) WHEN 1 THEN '总计' ELSE 课程名称 END) AS 课程名称,SUM(人数) AS 小计
     FROM 统计
     GROUP BY 课程名称 WITH ROLLUP
     ) AS t1
     LEFT JOIN 单元 AS t2 ON t1.课程名称=t2.课程名称
ORDER BY t2.课程代码 DESC

/*
--按单元统计
select b.*,(b.单元1+b.单元2+b.单元3+b.单元4+b.单元5+b.单元6) as 学院统计
from(select
     (case grouping(院系名称) when 1 then '总计' else 院系名称 end) as 学院名称,
  sum(case a.单元 when 1 then a.人数 else 0 end) as 单元1,
  sum(case a.单元 when 2 then a.人数 else 0 end) as 单元2,
  sum(case a.单元 when 3 then a.人数 else 0 end) as 单元3,
  sum(case a.单元 when 4 then a.人数 else 0 end) as 单元4,
  sum(case a.单元 when 5 then a.人数 else 0 end) as 单元5,
  sum(case a.单元 when 6 then a.人数 else 0 end) as 单元6
from(select n.院系名称,n.课程代码,n.人数,m.单元 from 单元 m,统计 n where m.课程代码=n.课程代码) as a
group by 院系名称 with rollup) as b
*/
drop table 单元
drop table 统计

转载于:https://www.cnblogs.com/mumufan/archive/2004/11/29/2018756.html

有行统计项和列统计项的行列转换,以及EXCEL导入SQL的简单应用相关推荐

  1. Python - 统计某一列不同项的重复次数 并新增一列赋值

    Python - 统计某一列不同项的重复次数 并新增一列赋值 需求: 比如一个dataframe里有一个字段为all ,想知道all里每一行的值在整个dataframe一红出现多少次 ,并在后新增一列 ...

  2. mysql行转列transform_MySQL学习之行列转换案例

    前言 Oracle中的pivot/unpivot函数可以很方便的帮助我们实现行列转换,但是MySQL并不支持. 可以在SQL上想办法,比如pivot考虑用聚合函数+case when, unpiovt ...

  3. Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决...

    一直在说截断,但是并未发现错误,也修改了映射的长度(证明并无卵用),查了下网上说的解决办法,说是改注册表,,修改方法如下: 如果是:Jet引擎. HKEY_LOCAL_MACHINE\SOFTWARE ...

  4. 【DB笔试面试639】在Oracle中,什么是多列统计信息(Extended Statistics)?

    ♣ 题目部分 在Oracle中,什么是多列统计信息(Extended Statistics)? ♣ 答案部分 Oracle优化器对于基数值的估算是否准确关系到能否生成最优的执行计划,而基数值估算的准确 ...

  5. 在Sqlserver下巧用行列转换日期的数据统计

    在Sqlserver下巧用行列转换日期的数据统计 原文:在Sqlserver下巧用行列转换日期的数据统计 在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数 ...

  6. python excel 数据分析统计服_数据分析从入门到进阶(透彻讲解EXCEL.SQL.TABLEAU、PYTHON四项数据分析必会工具.免费提供1GB数据集...

    透彻讲解Excel.SQL.Tableau.Python四项数据分析必会工具,数据分析工作者的案头推荐工具书.系统介绍数据分析的策略.方法(数据分析之道):实例讲解引导.快速掌握数据分析工具(数据分析 ...

  7. Python统计列表中的重复项出现的次数的方法

    本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下: 对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现 ...

  8. C语言简单算法之求交错序列前N项和,统计学生平均成绩与及格人数,求1到100的和,求奇数分之一序列前N项和,找出最小值,求n!,统计字符,最佳情侣身高差

    C语言简单算法之求交错序列前N项和,统计学生平均成绩与及格人数,求1到100的和,求奇数分之一序列前N项和,找出最小值,求n!,统计字符,最佳情侣身高差 [1] 1.题目三 求交错序列前N项和 1.实 ...

  9. EXCEL----数据处理(二)----B列中包含了A列的项

    需求是 找出两列数据(单列有重复)中的相互重复项----也就是说本身的列重复的数据不算,比如有AB两列,找出A与B的重复项,也就是B中包含了A的话就标记出来. 我们在上一篇已经讲了 EXCEL---- ...

最新文章

  1. Analytical Chemistry | 深度学习实现高分辨率LC-MS数据中的精确峰检测
  2. oracle10g資料庫調效,資料庫 | 簡睿隨筆 | 學習過程的紀錄與備忘
  3. leetcode409. 最长回文串
  4. java xmpp即时通讯_基于XMPP协议即时通讯工具开发总结
  5. border做三角形
  6. apollo 配置中心小结
  7. MDT2012+ADK8.0+WDS部署Windows客户端(一)部署概念和方法论
  8. NS 2.35 柯志亨书-实验9笔记-队列管理机制
  9. Unicdoe【真正的完整码表】对照表(二)汉字Unicode表
  10. C语言pow函数编写
  11. 如何删除word中怎么也删不掉的顽固空白页
  12. linux+h3c模拟器下载,h3c模拟器下载
  13. mysql 类似oracle dual_MySQL类似Oracle的dual虚拟表
  14. ibm tivoli_IBM Tivoli Directory Server中的安全复制
  15. 3DES加密,苹果、Java 、安卓 平台一致的加密工具
  16. 键盘上特殊符号的中英文名称
  17. WordPress快速增加百度收录的方法
  18. 九龙证券|券商春季策略扎堆来袭 风格切换成焦点
  19. MySQL 更新某个字段的值加1 是有前提条件的(非auto_increament)
  20. 土壤微生物组——从宏基因组学到宏表型组学

热门文章

  1. gnome2 卷起_推荐4个非常漂亮的Gnome 3.2 主题[PPA]
  2. 扫地机器人水箱背景_家友扫地机器人拖地水箱配件(米家扫地机器人1代版)体验(Case Closed)...
  3. android在标准linux基础上对休眠唤醒的实现,Android在标准linux基础上对休眠唤醒的实现(三)...
  4. 华为设备离线什么意思_华为手机中的P、Mate、nova分别是什么意思?看完你全懂了...
  5. 系统学习机器学习之线性判别式(二)
  6. larval 操作mysql数据库_laravel的数据库操作(三种)
  7. 【数据库原理实验(openGauss)】实验报告
  8. 图的存储结构之邻接表
  9. 截至2006年3月1日全球CCIE人数统计
  10. Focus Stacking