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

最新文章

  1. PHP文件相关的操作函数——文件操作
  2. MySQL 忘记root密码解决办法
  3. 【IOS】异步调用--- 简单使用记录
  4. iOS LaunchScreen启动图设置
  5. HDU5366 The mook jong (DP)
  6. arm Linux 系统调用过程
  7. Remove Nth Node From End of List 解答
  8. CentOS 如何安装git server + Gitolite 【配置不成功需要再测试2015-8-20】
  9. 关于PHP上传文件时配置 php.ini 中的 upload_tmp_dir
  10. java使用valueOf的方法反转字符串输出
  11. (转)Detect it Easy(壳侦测工具)使用方法介绍
  12. Java-Selenium,获取下拉框中的每个选项的值,并随机选择某个选项
  13. java项目配置域名(tomcat直接配置 or 使用nginx反向代理)
  14. Anaconda中配置Pyspark的Spark开发环境
  15. 安装sybase服务器并连接数据库
  16. 从线性回归到CNN【转】
  17. XSS盗COOKIE
  18. jQuery UI dialog 参数说明
  19. (转)SQL Server上的一个奇怪的Deadlock及其分析方法
  20. python-生成器单线程并发(简单案例)

热门文章

  1. angular作用域分析
  2. Python【第一章】:简介和入门
  3. Python基本数据类型之整型和布尔型
  4. MySQL索引结构--由 B-/B+树看
  5. 如何学习Oracle
  6. JS 面向对象随笔
  7. centos7删除自带openjdk
  8. Unity自动打包 apk
  9. 2015.4.25-2015.5.1 字符串去重,比例圆设计,中奖机和canvas橡皮擦效果等
  10. [Python] Python中的一些特殊函数