查找担保圈-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#外部类、内部类(嵌套类)之间的成员访问特点
最近程序中需要用到多线程工作下的单例模式.而其多种实现方法中,利用内部类实现懒汉模式是一种值得推荐的方式.顺便也就对内部类和外部类之间的关系做了一下研究,总结如下(理解不困难,不粘贴代码了,有需要的留 ...
随机推荐
- .Net利用cwbx.dll call AS400 program得到数据
calling as400 programs from c# http://forums.asp.net/t/1817332.aspx?calling+as400+programs+from+c+ H ...
- luogu 4234 最小差值生成树 LCT
感觉码力严重下降~ #include <bits/stdc++.h> #define N 400006 #define inf 1000000000 #define setIO(s) fr ...
- IVIEW组件Table中加入EChart柱状图
展示图如下: 主要利用了render函数和updated()钩子函数进行数据填充与渲染. 1.在Table的Colums中加入 1 { 2 title: '比例图', 3 align: 'center ...
- Dean and Schedule (URAL 2026)
Problem A new academic year approaches, and the dean must make a schedule of classes for first-year ...
- Mybatis源码学习之DataSource(七)_2
接上节数据源,本节我们将继续学习未完成的部分,包括无连接池情况下的分析.为什么使用连接池.及mybatis连接池的具体管理原理 不使用连接池的UnpooledDataSource 当 的type属性为 ...
- 面试题_Spring基础篇
Spring基础题 1. 什 么 是 Spring? Spring 是 个 java 企 业 级 应 用 的 开 源 开 发 框 架 .Spring 主 要 用 来 开 发 Java 应 用 , 但 ...
- iOS学习之Autolayout
转载自:http://vit0.com/blog/2013/12/07/iosxue-xi-zhi-autolayout/ 学习资料 文章 Beginning Auto Layout Tutorial ...
- .net 数据导出
安装npoi,下面是具体的C#代码: public static XSSFWorkbook BuildWorkbook(DataTable dt) { var book = new XSSFWorkb ...
- Dubbo API 笔记——Dubbo架构与使用
转载于: https://blog.csdn.net/benhuo931115/article/details/78457149 架构演变 单一应用架构 所有功能部署在一个应用上,用于简化增删改查工作 ...
- java代理浅述
代理 代理主要可以分为: 静态代理 JDK自带的动态代理 Cglib 静态代理 静态代理比较简单,简单来说就是不想直接调用被代理类,通过代理类来实现功能.如下就是使用了静态代理 定义接口 public ...