有行统计项和列统计项的行列转换,以及EXCEL导入SQL的简单应用
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的简单应用相关推荐
- Python - 统计某一列不同项的重复次数 并新增一列赋值
Python - 统计某一列不同项的重复次数 并新增一列赋值 需求: 比如一个dataframe里有一个字段为all ,想知道all里每一行的值在整个dataframe一红出现多少次 ,并在后新增一列 ...
- mysql行转列transform_MySQL学习之行列转换案例
前言 Oracle中的pivot/unpivot函数可以很方便的帮助我们实现行列转换,但是MySQL并不支持. 可以在SQL上想办法,比如pivot考虑用聚合函数+case when, unpiovt ...
- Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决...
一直在说截断,但是并未发现错误,也修改了映射的长度(证明并无卵用),查了下网上说的解决办法,说是改注册表,,修改方法如下: 如果是:Jet引擎. HKEY_LOCAL_MACHINE\SOFTWARE ...
- 【DB笔试面试639】在Oracle中,什么是多列统计信息(Extended Statistics)?
♣ 题目部分 在Oracle中,什么是多列统计信息(Extended Statistics)? ♣ 答案部分 Oracle优化器对于基数值的估算是否准确关系到能否生成最优的执行计划,而基数值估算的准确 ...
- 在Sqlserver下巧用行列转换日期的数据统计
在Sqlserver下巧用行列转换日期的数据统计 原文:在Sqlserver下巧用行列转换日期的数据统计 在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数 ...
- python excel 数据分析统计服_数据分析从入门到进阶(透彻讲解EXCEL.SQL.TABLEAU、PYTHON四项数据分析必会工具.免费提供1GB数据集...
透彻讲解Excel.SQL.Tableau.Python四项数据分析必会工具,数据分析工作者的案头推荐工具书.系统介绍数据分析的策略.方法(数据分析之道):实例讲解引导.快速掌握数据分析工具(数据分析 ...
- Python统计列表中的重复项出现的次数的方法
本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下: 对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现 ...
- C语言简单算法之求交错序列前N项和,统计学生平均成绩与及格人数,求1到100的和,求奇数分之一序列前N项和,找出最小值,求n!,统计字符,最佳情侣身高差
C语言简单算法之求交错序列前N项和,统计学生平均成绩与及格人数,求1到100的和,求奇数分之一序列前N项和,找出最小值,求n!,统计字符,最佳情侣身高差 [1] 1.题目三 求交错序列前N项和 1.实 ...
- EXCEL----数据处理(二)----B列中包含了A列的项
需求是 找出两列数据(单列有重复)中的相互重复项----也就是说本身的列重复的数据不算,比如有AB两列,找出A与B的重复项,也就是B中包含了A的话就标记出来. 我们在上一篇已经讲了 EXCEL---- ...
最新文章
- Analytical Chemistry | 深度学习实现高分辨率LC-MS数据中的精确峰检测
- oracle10g資料庫調效,資料庫 | 簡睿隨筆 | 學習過程的紀錄與備忘
- leetcode409. 最长回文串
- java xmpp即时通讯_基于XMPP协议即时通讯工具开发总结
- border做三角形
- apollo 配置中心小结
- MDT2012+ADK8.0+WDS部署Windows客户端(一)部署概念和方法论
- NS 2.35 柯志亨书-实验9笔记-队列管理机制
- Unicdoe【真正的完整码表】对照表(二)汉字Unicode表
- C语言pow函数编写
- 如何删除word中怎么也删不掉的顽固空白页
- linux+h3c模拟器下载,h3c模拟器下载
- mysql 类似oracle dual_MySQL类似Oracle的dual虚拟表
- ibm tivoli_IBM Tivoli Directory Server中的安全复制
- 3DES加密,苹果、Java 、安卓 平台一致的加密工具
- 键盘上特殊符号的中英文名称
- WordPress快速增加百度收录的方法
- 九龙证券|券商春季策略扎堆来袭 风格切换成焦点
- MySQL 更新某个字段的值加1 是有前提条件的(非auto_increament)
- 土壤微生物组——从宏基因组学到宏表型组学
热门文章
- gnome2 卷起_推荐4个非常漂亮的Gnome 3.2 主题[PPA]
- 扫地机器人水箱背景_家友扫地机器人拖地水箱配件(米家扫地机器人1代版)体验(Case Closed)...
- android在标准linux基础上对休眠唤醒的实现,Android在标准linux基础上对休眠唤醒的实现(三)...
- 华为设备离线什么意思_华为手机中的P、Mate、nova分别是什么意思?看完你全懂了...
- 系统学习机器学习之线性判别式(二)
- larval 操作mysql数据库_laravel的数据库操作(三种)
- 【数据库原理实验(openGauss)】实验报告
- 图的存储结构之邻接表
- 截至2006年3月1日全球CCIE人数统计
- Focus Stacking