GO
alter proc [zsp_BranchsData]
as
begin
/*
CREATE TABLE [原始机构数据]
(
[序号] [varchar](50) NULL,
[一级分行号] [varchar](50) NULL,
[一级分行名称] [varchar](50) NULL,
[二级分行号] [varchar](50) NULL,
[二级分行名称] [varchar](50) NULL,
--[上级机构号] [varchar](50) NULL,
--[上级机构名称] [varchar](50) NULL,
--[责任中心号] [varchar](50) NULL,
--[责任中心名称] [varchar](50) NULL
)
*/
SELECT
--GROUPING([一级分行号])
--,
[一级分行号] =
iif
(
GROUPING([一级分行号]) = 1
, '合计:'
, [一级分行号]
) ,
[一级分行名称] =
iif
(
GROUPING([一级分行号]) = 1
,
cast
(
count(distinct [一级分行号]) as varchar
)
, max([一级分行名称])
) ,
[二级分行数量] = count(distinct [二级分行号])
FROM
[原始机构数据]
group by
--[一级分行号]
rollup
(
[一级分行号]
)
order by
GROUPING([一级分行号])
, [一级分行号]
select
[二级分行号] ,
[二级分行名称] = max([二级分行名称]) ,
[一级分行号] = max([一级分行号]) ,
[一级分行名称] = max([一级分行名称])
from
[原始机构数据]
group by
[二级分行号]
order by
3
;with T
as
(
SELECT
[一级分行组] = GROUPING([一级分行号]) ,
[全辖一级分行序号] = DENSE_RANK()
over
(
order by
[一级分行号]
) - 1 ,
[一级分行号] =
iif
(
GROUPING([一级分行号]) = 1
, '全部合计:'
, [一级分行号]
) ,
[一级分行名称] =
case
when
GROUPING([一级分行号]) = 1
then
cast(count(distinct [一级分行号]) as varchar)
when
GROUPING([二级分行号]) = 1
and GROUPING([一级分行号]) = 0
then
max([一级分行名称]) + ' 分组'
else
max([一级分行名称])
end ,
[二级分行组] = GROUPING([二级分行号]) ,
[辖内二级分行序号] = ROW_NUMBER()
over
(
partition by
[一级分行号]
order by
[二级分行号]
) - 1 ,
[二级分行号] =
case
when
GROUPING([一级分行号]) = 1
and GROUPING([二级分行号]) = 1
then
'全部合计:'
when
GROUPING([二级分行号]) = 1
then
'分组小计:'
else
[二级分行号]
end ,
[二级分行名称] =
iif
(
GROUPING([二级分行号]) = 1
, cast(count(distinct [二级分行号]) as varchar)
, max([二级分行名称])
)
FROM
[原始机构数据]
group by
--[一级分行号]
rollup
(
[一级分行号]
, [二级分行号]
)
)
select
--[一级分行组] ,
[全辖一级分行序号] ,
[一级分行号] ,
[一级分行名称] ,
--[二级分行组] ,
[辖内二级分行序号] ,
[二级分行号] ,
[二级分行名称]
from
T
order by
[一级分行号] ,
[一级分行组] ,
[二级分行号] ,
[二级分行组]
end

SQL 2012 Group By Rollup, Grouping的更多相关文章

  1. oracle group by rollup,decode,grouping,nvl,nvl2,nullif,grouping_id,group_id,grouping sets,RATIO_TO

    干oracle 047文章12当问题,经验group by 声明.因此邂逅group by  rollup,decode,grouping,nvl,nvl2,nullif,RATIO_TO_REPOR ...

  2. SQL Server ->> GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID

    在我们制作报表的时候常常需要分组聚合.多组聚合和总合.如果通过另外的T-SQL语句来聚合难免性能太差.如果通过报表工具的聚合功能虽说比使用额外的T-SQL语句性能上要好很多,不过不够干脆,还是需要先生 ...

  3. Group By 多个分组集小结 --GROUPING SETS,GROUP BY CUBE,GROUP BY ROLLUP,GROUPING(),GROUPING_ID()

    T-SQL 多个分组集共有三种 GROUPING SETS, CUBE, 以及ROLLUP, 其中 CUBE和ROLLUP可以当做是GROUPING SETS的简写版 示例数据库下载: http:// ...

  4. oracle GROUP BY rollup

    1.ROW_NUMBER() OVER函数的基本用法用法 http://www.cnblogs.com/fxgachiever/archive/2010/09/15/1826792.html 2.De ...

  5. GROUP函数-GROUP_ID,GROUPING,GROUPING_ID

    GROUP_ID 首先我们看看官方的解释: 大意是GROUP_ID用于区分相同分组标准的分组统计结果. 解释起来比较抽象,下面我们来看看具体的案例. 例1:单一分组 SQL> select gr ...

  6. oracle group by rollup实现小计、合计

    SQL合计汇总实现数据N+1条显示: 注意group by rollup((ename, job, empno))!!! select decode(grouping(ename) + groupin ...

  7. SQL基础教程(第2版)第8章 SQL高级处理:8-2 GROUPING运算符

    第8章 SQL高级处理:8-2 GROUPING运算符 ■ GROUPING SETS——取得期望的积木● 只使用GROUP BY子句和聚合函数是无法同时得出小计和合计的.如果想要同时得到,可以使用G ...

  8. Oracle Group by+rollup+cube 的应用

    首先我们创建一个示例表: Create table test_group (v_name varchar2(4) ,v_size varchar2(4) ,v_color varchar2(4) ,n ...

  9. oracle按照指定列分组合计group by rollup()

    group by rollup() 按分组合计 select grouping(status),status,owner,object_type,count(*) from dba_objects w ...

随机推荐

  1. 【UOJ#228】基础数据结构练习题 线段树

    #228. 基础数据结构练习题 题目链接:http://uoj.ac/problem/228 Solution 这题由于有区间+操作,所以和花神还是不一样的. 花神那道题,我们可以考虑每个数最多开根几 ...

  2. django创建blog

    如果本文看不懂的,去看的我视频吧!http://www.testpub.cn/ ------------------------------------------- Django 自称是" ...

  3. 【Unity3D】AR应用中,关于东南西北方位的判断。

    这篇文章的应用场景是这样子的: 首先我们要做的是一个带有LBS定位服务(比如高德地图.百度地图等)AR功能,在这个场景中,会有一些地图上的”点“(如派出所.学校)是我们需要显示在我们的AR镜头上的,如 ...

  4. js 中关于this用变量存起来的原因

    近来,不忙,总是在网上看大牛的博客,发现关于this指向的情况,有的说是4种,也对,有的就是总结一句话,也对,但是我发现一种特殊情况,例子如下 var show={ btn:$('.div1'), i ...

  5. 常见input输入框 点击 发光白色外阴影 focus

    先看看具体实现的效果 第一就是点击input 实现的效果 默认谷歌点击input是蓝色边框 去掉用outline:0;  实现效果用focus  默认状态的边框颜色一般较重 如border:1px s ...

  6. Npoi导入导出Excel操作

    之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求. 在winform上面实现excel操作:http://www.cnblogs.com/Cal ...

  7. Mysql 建立索引

  8. hadoop集群安装无密码登录

    http://blog.csdn.net/qiuchenl/article/details/7999044 hadoop安装:http://aperise.iteye.com/blog/2245547 ...

  9. java表格操作之设置表格列宽

    设置所有列的宽度 /** * 设置所有列的列宽 * @param table * @param width */ public void setAllColumnWidth(JTable table, ...

  10. iOS开发——高级篇——通讯录

    一.简介 1.如何访问用户的通讯录1)在iOS9之前有2个框架可以访问用户的通讯录AddressBookUI.framework提供了联系人列表界面.联系人详情界面.添加联系人界面等一般用于选择联系人 ...