`
lifan51777
  • 浏览: 15389 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Sql分类统计

 
阅读更多

通过sql语句实现类似交叉表,分类统计的效果

 

一、类别固定

SELECT     dbo.Department.DepartmentName AS 单位名称, dbo.Schedule.ScheduleName, dbo.Schedule.Year, 
                      SUM(CASE Category.CategoryName WHEN '厂房与建筑' THEN DXPlanInfo.PlanProCount + DXPlanInfo.PlanWorkCount END) AS 厂房与建筑, 
                      SUM(CASE Category.CategoryName WHEN '生活福利' THEN DXPlanInfo.PlanProCount + DXPlanInfo.PlanWorkCount END) AS 生活福利, 
                      SUM(CASE Category.CategoryName WHEN '交通运输' THEN DXPlanInfo.PlanProCount + DXPlanInfo.PlanWorkCount END) AS 交通运输, 
                      SUM(CASE Category.CategoryName WHEN '综采综掘' THEN DXPlanInfo.PlanProCount + DXPlanInfo.PlanWorkCount END) AS 综采综掘, 
                      SUM(CASE Category.CategoryName WHEN '一般设备' THEN DXPlanInfo.PlanProCount + DXPlanInfo.PlanWorkCount END) AS 一般设备, 
                      SUM(CASE Category.CategoryName WHEN '其它' THEN DXPlanInfo.PlanProCount + DXPlanInfo.PlanWorkCount END) AS 其它, 
                      dbo.DXPlanInfo.remarks AS 备注
FROM         dbo.Category INNER JOIN
                      dbo.Schedule INNER JOIN
                      dbo.[Plan] ON dbo.Schedule.ID = dbo.[Plan].ScheduleID INNER JOIN
                      dbo.Department ON dbo.[Plan].DepartmentID = dbo.Department.ID ON dbo.Category.ID = dbo.[Plan].CategoryID INNER JOIN
                      dbo.DXPlanInfo INNER JOIN
                      dbo.Item ON dbo.DXPlanInfo.ItemID = dbo.Item.ID ON dbo.[Plan].ID = dbo.Item.PlanID
WHERE     (dbo.Schedule.ScheduleName = '****')
GROUP BY dbo.Department.DepartmentName, dbo.Schedule.ScheduleName, dbo.Schedule.Year, dbo.DXPlanInfo.remarks

 二、类别不固定

 

declare @sql varchar(8000)

set @sql='select Department.DepartmentName AS 单位名称, '

select @sql=@sql+' sum(case Category.CategoryName when '''+categoryName+''' then DXPlanInfo.PlanProCount + DXPlanInfo.PlanWorkCount END) as ['+categoryName+'],'
from (select distinct categoryName from category where scheduleID=5) as a

set @sql = @sql + ' dbo.DXPlanInfo.remarks AS 备注  from dbo.Category INNER JOIN
                      dbo.Schedule INNER JOIN
                      dbo.[Plan] ON dbo.Schedule.ID = dbo.[Plan].ScheduleID INNER JOIN
                      dbo.Department ON dbo.[Plan].DepartmentID = dbo.Department.ID ON dbo.Category.ID = dbo.[Plan].CategoryID INNER JOIN
                      dbo.DXPlanInfo INNER JOIN
                      dbo.Item ON dbo.DXPlanInfo.ItemID = dbo.Item.ID ON dbo.[Plan].ID = dbo.Item.PlanID
GROUP BY dbo.Department.DepartmentName, dbo.Schedule.ScheduleName, dbo.Schedule.Year, dbo.DXPlanInfo.remarks'
	
exec(@sql)
 

 

分享到:
评论

相关推荐

    数据库统计sql脚本

    数据库统计sql脚本 mysql数据库

    sqlserver 分组合并 分组统计

    sqlserver 分组合并字符串 分组统计数量

    2019年全国统计用区划代码和城乡划分代码.sql

     此次发布内容为2019年全国统计用区划代码(12位)和城乡分类代码(3位),地域范围为国家统计局开展统计调查的全国31个省、自治区、直辖市,未包括我国台湾省、香港特别行政区、澳门特别行政区。  《关于统计上...

    Java SQL数据库统计世界杯足球赛成绩.rar

     在Java代码实现方面,结合了SQLSERVER数据库,编写了数据库操作类,连接指定数据库并获得数据库属性信息,按省份分类浏览student数据库中的stuinfo表。输入并分类浏览参赛队信息,实际上这是一个数据库应用范例,...

    如何分类、分组以及总计SQL数据

    SQL提供了大量用于分类、分组和总计的子句及运算符。本文的建议将有助于您了解何时进行分类、何时分组、何时及如何进行总计。

    经典SQL脚本大全

    │ │ 3.5.3 字符串分拆并统计的处理示例.sql │ │ 3.5.5 字符串处理示例--列车车次查询.sql │ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.sql │ │ 3.6.3 动态参数的存储过程示例.sql │ │ 3.6.4 动态他...

    ACCESS数据库分类统计易语言源码

    资源介绍:。源码结合高级表格支持库,主要对MDB数据库进行分类统计计算。通过执行SQL语句来得到相关的记录集,支持按照经销商和产品进行分类统计求和。资源作者:。@数据库教程。资源界面:。资源下载:。

    国民经济行业分类GB/T4754-2017 category.sql

    4754-2017是最新国民经济行业分类标准,根据国家统计局最新数据整理2017年10月实行的标准。此资源为门类、大类、中类及小类所有数据。 部分示例: id | cate | cate_big | cate_big |cate_small | name |...

    ORACLE多条件统计查询的简单方法

    前几天要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析。一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该。 然后就开始百度,多种条件下的统计。然后有一种语法让我...

    Sqlserver2000经典脚本

    学号.sql │ 开票统计--涉及到连号处理.sql │ 新编号查询示例(分类查询).sql │ 新编号查询示例.sql │ 日期流水号.sql │ 材料流水号.sql │ 流水号.sql │ 箱编号连号处理.sql ...

    SQL基础编写与调试优化

    SQL语句分类(DDL、DML、DQL、DCL) 内容简介 第五部分 SQL优化 优化器 SQL语句执行过程 SQL优化术语 第一部分 SQL基础 SQL简介 发展历史 SQL语句分类 DDL[Data Definition Language] DML[Data Manipulation ...

    收获不止SQL优化

    8.2.3 索引扫描类型的分类与构造 219 8.3 索引相关优化案例 225 8.3.1 三大特性的相关案例 225 8.3.2 组合索引的经典案例 231 8.4 本章习题、总结与延伸 234 第9章 且慢,弄清索引之阻碍让SQL飞 235 9.1 索引...

    统计用产品分类目录。excel版本

    统计用产品分类目录。excel版本。包含code,name,level,upperCode。

    2019最新行政区划.sql(五级:省、市、县、乡、村)

     此次发布内容为2019年全国统计用区划代码(12位)和城乡分类代码(3位),地域范围为国家统计局开展统计调查的全国31个省、自治区、直辖市,未包括我国台湾省、香港特别行政区、澳门特别行政区。

    数据库中如何分类/分组并总计SQL数据

    SQL提供了大量用于分类、分组和总计的子句及运算符。本文介绍了何时进行分类、何时分组、何时及如何进行总计。

    SQL server 语句大全

    聚合函数(统计) 10 SQL变量 11 局部变量 11 全局变量 11 SQL中的代码块 14 数据库中的if和else语句 14 SQL中的while语句 14 Case-End多分支语句 14 子查询 15 视图(虚拟表)和索引 16 视图 16 索引 16 ...

    Pro SQL Server 2019 Wait Statistics, 2nd Edition.pdf

    以下是使用等待统计信息分析SQLServer性能并排除故障的实用指南。学习如何准确地确定查询运行缓慢的原因。测量每个瓶颈所消耗的时间,以便您可以首先集中精力进行最大的改进。此版本被更新,以涵盖查询存储中等待...

    SQL SERVER 统计信息概述(Statistics)

     统计信息的分类  根据创建源的不同,统计信息分为两种表统计信息和索引统计信息,除非你自定义它们,否则它们之间没有本质的区别。  索引统计信息建立在索引上面,因此对于创建已经存在的数据上,在创建索引...

    数据库中如何分类、分组并总计SQL数据

    以有意义的方式安排数据可能是一种挑战。有时您只需进行简单分类。...可喜的是SQL提供了大量用于分类、分组和总计的子句及运算符。本文的建议将有助于您了解何时进行分类、何时分组、何时及如何进行总计。

    收获,不止SQL优化--抓住SQL的本质

    8.2.3 索引扫描类型的分类与构造 219 8.3 索引相关优化案例 225 8.3.1 三大特性的相关案例 225 8.3.2 组合索引的经典案例 231 8.4 本章习题、总结与延伸 234 第9章 且慢,弄清索引之阻碍让SQL飞 235 9.1 索引...

Global site tag (gtag.js) - Google Analytics