查找担保圈-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#外部类、内部类(嵌套类)之间的成员访问特点
最近程序中需要用到多线程工作下的单例模式.而其多种实现方法中,利用内部类实现懒汉模式是一种值得推荐的方式.顺便也就对内部类和外部类之间的关系做了一下研究,总结如下(理解不困难,不粘贴代码了,有需要的留 ...
随机推荐
- 乱搞 - LCT求LCA
神犇学弟说LCA要用LCT求,于是我就听他的话写了一个LCT~ Code: #include <bits/stdc++.h> #define N 500005 #define lson t ...
- 收藏一个ST表模板
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #i ...
- [Luogu] 火柴排队
https://www.luogu.org/problemnew/show/P1966 离散化 树状数组求逆序对个数 #include <bits/stdc++.h> using name ...
- JetBrains IDE 基本快捷键
转载自:https://nextfe.com/jetbrains-ide-shortcuts/ 一个好的手艺人很熟悉他的工具.软件开发者也不例外.所以,在编程的过程中,值得了解一些键盘快捷键,以免因为 ...
- T2695 桶哥的问题——吃桶 题解
校内测试 ------T3 对于这个题,首先想到的应该就是暴力枚举了吧,看看数据范围,60就是白送的啦!(但是我也不知道怎么才20分qwq) 思路分析: 这个题要你求所有套餐的总价值,先看一眼产生套餐 ...
- Jmeter工具做接口测试
一.安装Jmeter 1.安装JDK ①下载jdk,到官网下载jdk,地址:http://jmeter.apache.org/download_jmeter.cgi ② 安装jdk(Oracle官网下 ...
- 【Android】【踩坑日记】解决Error:SSL peer shut down incorrectly
前提条件 http://services.gradle.org/distributions/ 复制到浏览浏览器能打开 下一步 打开Android studiogradle version 配置文件进行 ...
- Leetcode题目94.二叉树的中序遍历(中等)
题目描述: 给定一个二叉树,返回它的中序遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 思路解析: 1 ...
- Linux设备驱动程序 之 自旋锁
概念 自旋锁可以再不能休眠的代码中使用,比如中断处理例程:在正确使用的情况下,自旋锁通常可以提供比信号量更高的性能: 一个自旋锁是一个互斥设备,它只能由两个值,锁定和解锁:通常实现为某个整数值中的单个 ...
- Flume-安装与 NetCat UDP Source 监控端口
Flume 文档:https://flume.apache.org/FlumeUserGuide.html Flume 下载:https://archive.apache.org/dist/flume ...