查找担保圈-step5-比较各组之间的成员,对组的包含性进行查询,具体见程序的注释-版本2
USE [test]
GO
/****** Object: StoredProcedure [dbo].[p03_get_groupno_e2] Script Date: 2019/7/8 15:01:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[p03_get_groupno_e2]
AS
BEGIN
--s3,比较各组的成员,对组进行清理,具体见程序的注释
SET STATISTICS TIME OFF;
SET STATISTICS IO OFF;
SET NOCOUNT ON;
DECLARE @get_max_groupno INT = 0;
SELECT @get_max_groupno = MAX(groupno)
FROM dbo.t01_get_group_path;
--预先清空dbo.t03_get_groupno表
TRUNCATE TABLE dbo.t03_get_groupno;
DECLARE @a INT = 1;
WHILE @a <= @get_max_groupno --最大的分组编号
BEGIN
DECLARE @b INT = @a + 1;
WHILE @b <= @get_max_groupno --最大的分组编号
BEGIN
DECLARE @p BIT = 0,
@q BIT = 0;
IF EXISTS
(
SELECT cust_name
FROM [dbo].[t02_get_group_member]
WHERE groupno = @a
EXCEPT
SELECT cust_name
FROM [dbo].[t02_get_group_member]
WHERE groupno = @b
)
SET @p = 1;
ELSE
SET @p = 0; IF EXISTS
(
SELECT cust_name
FROM [dbo].[t02_get_group_member]
WHERE groupno = @b
EXCEPT
SELECT cust_name
FROM [dbo].[t02_get_group_member]
WHERE groupno = @a
)
SET @q = 1;
ELSE
SET @p = 0;
IF (
@p >= 1
OR @p = 0
)
AND @q = 0 --第1,4种情况,集合a包括集合b的情况(a包括b但b不包括a,a=b两种情况,保留集合a的组号)
INSERT INTO dbo.t03_get_groupno
(
ctype,
iinclude_groupno,
ibeincluded_groupno
)
VALUES
('1,4', @a, @b);
ELSE IF @p = 0
AND @q >= 1 --第2种情况,集合b包括集合a,但集合a不包括集合b
INSERT INTO dbo.t03_get_groupno
(
ctype,
iinclude_groupno,
ibeincluded_groupno
)
VALUES
('', @b, @a); ELSE IF @p >= 1 --第三种情况,a和b存在交集但不完全相同,或者a和b完全不同
AND @q >= 1
BEGIN
INSERT INTO dbo.t03_get_groupno
(
ctype,
iinclude_groupno,
ibeincluded_groupno
)
VALUES
('', @a, 0),
('', @b, 0);
END;
SET @b = @b + 1;
END;
SET @a = @a + 1;
END;
END;
查找担保圈-step5-比较各组之间的成员,对组的包含性进行查询,具体见程序的注释-版本2的更多相关文章
- 查找担保圈-step1-担保圈表函数
USE [test]; GO /****** Object: UserDefinedFunction [dbo].[f_findrecycle] Script Date: 2019/7/8 14:37 ...
- 查找担保圈-step4-提取s1中担保圈路径中的成员
USE [test] GO /****** Object: StoredProcedure [dbo].[p02_get_group_member] Script Date: 2019/7/8 14: ...
- 查找担保圈-step3-获取担保圈路径
USE [test] GO /****** Object: StoredProcedure [dbo].[p01_get_group_path] Script Date: 2019/7/8 14:40 ...
- 查找担保圈-step7-提取未被包含过组的成员,得出结论
USE [test] GO /****** Object: StoredProcedure [dbo].[p05_get_group_member_cleared] Script Date: 2019 ...
- 查找担保圈-step6-对被包含过的组进行清理,只保留未被包含过的组
USE [test] GO /****** Object: StoredProcedure [dbo].[p04_get_groupno_cleared] Script Date: 2019/7/8 ...
- 查找担保圈-step2-拆分成员表函数
USE [test] GO /****** Object: UserDefinedFunction [dbo].[tf_split_char] Script Date: 2019/7/8 14:39: ...
- 关于CodeFirst异常:无法确定类型'XXX'和类型‘YYY’之间的关联的主体端,必须使用关系 Fluent API 或数据注释显式配置此关联的主体端。
此错误的原因是,你配置两个实体间的关系为一对一 然而我认为的一对一关系是,两者之间必须存在一个主体, 也就是说,你不能表1的外键是表2的主键并且表1的主键是表2的外键, 这样不符合数据库式吧? 我想多 ...
- Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...
- C#外部类、内部类(嵌套类)之间的成员访问特点
最近程序中需要用到多线程工作下的单例模式.而其多种实现方法中,利用内部类实现懒汉模式是一种值得推荐的方式.顺便也就对内部类和外部类之间的关系做了一下研究,总结如下(理解不困难,不粘贴代码了,有需要的留 ...
随机推荐
- 路由器配置——基于区域的OSPF简单认证
一.实验目的:掌握区域的OSPF简单认证 二.拓扑图: 三.具体步骤配置: (1)R1路由器配置 Router>enable Router#configure terminal Enter co ...
- Codevs 2505 上学路线 (组合数学)
2505 上学路线 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题目描述 Description 因为是学生,所以显然小A每天都要上学.小A所在的城市的道路构 ...
- Zookeeper原理 二
Zookeeper到底是什么!? 学一个东西,不搞明白他是什么东西,哪还有心情学啊!! 首先,Zookeeper是Apache的一个java项目,属于Hadoop系统,扮演管理员的角色. 然后看到官网 ...
- Git 提交代码和更新代码
首先,操作之前一定要看清分支!! 其次,提交代码之前一定要先更新代码!! git branch -----查看当前分支 git pull -----更新代码到本地 ...
- python_re模块
正则表达式:http://www.regexlab.com/zh/regref.htm
- Golang使用RabbitMQ消息中间件amqp协议
"github.com/streadway/amqp" Publish发布 // amqp://<user>:<password>@<ip>:& ...
- (转载)IOCP 浅析
转自:http://www.ibm.com/developerworks/cn/java/j-lo-iocp/#author 郭 仁祥, 软件工程师, IBM 简介: 传统的 Server/Cli ...
- 对 Python 迭代的深入研究
在程序设计中,通常会有 loop.iterate.traversal 和 recursion 等概念,他们各自的含义如下: 循环(loop),指的是在满足条件的情况下,重复执行同一段代码.比如 Pyt ...
- P1080 国王游戏 (等待高精度AC)
P1080 国王游戏 题解 贪心策略:按照大臣左右手数字乘积从小到大排序 假设我们已经把大臣排了一个顺序 假定在这个顺序下我们可以保证 得到奖赏最多的大臣所得奖赏最少 那么我们一旦交换任意两个大臣, ...
- http2.0多路复用
http/1中的每个请求都会建立一个单独的连接,除了在每次建立连接过程中的三次握手之外,还存在TCP的慢启动导致的传输速度低.其实大部分的http请求传送的数据都很小,就导致每一次请求基本上都没有达到 ...