Sql 如何创建循环依赖关系成员凭证

Sql 如何创建循环依赖关系成员凭证,sql,tsql,Sql,Tsql,我有桌上会员、凭单和辞职。成员和凭证之间存在关系,其中成员可以有多个凭证,凭证可以有多个成员 并链接到表demist 以下是表格: create table member ( ID int identity(1,1) primary key not null, memberno varchar(30), nameoncard varchar(30) ) create table voucher ( id int identity(1,1) primary key

我有桌上会员、凭单和辞职。成员和凭证之间存在关系,其中成员可以有多个凭证,凭证可以有多个成员

并链接到表demist

以下是表格:

create table member
(
    ID int identity(1,1) primary key not null,
    memberno varchar(30),
    nameoncard varchar(30)
)

create table voucher
(
    id int identity(1,1) primary key not null,
    voucherno varchar(30),
    memberno varchar(30)
)

insert into member values
  ('ai001','ali')
, ('ai002','badu')
, ('ai003','cica')
, ('ai004','dudi')
, ('ai005','efi')
, ('ai006','galih')
, ('ai007','heru')
, ('ai008','ina')
, ('ai009','joko')
, ('ai010','lambert')

insert into voucher values
  ('vc001','ai001')
, ('vc001','ai002')
, ('vc002','ai003')
, ('vc002','ai004')
, ('vc002','ai005')
, ('vc003','ai001')
, ('vc003','ai002')
, ('vc004','ai003')
, ('vc004','ai001')
, ('vc005','ai005')

create table resign
(
    id int identity(1,1) primary key not null,
    memberno varchar(30),
    tanggalresign datetime
)

insert into resign values 
('ai005','2019-01-20')
从辞职表中,memberno有如下相关凭证

会员编号ai005有凭证vc002和vc005 Voucheno vc002的成员编号为ai003、ai004、ai005 Voucheno vc005的成员号为ai005 步骤1中的回路将ai005替换为ai003、ai004 通过ai003、ai004获得Voucheno的名单,然后通过这些凭证获得cek成员的名单。 我用六个剧本达到了六级

是否有任何解决方案来创建查询,以获取与成员辞职相关的所有凭证中的所有列表成员。 但我需要的是如何做它像使用CTE等自动循环


请在此处检查六个级别的六个脚本:

您是否尝试添加和m.memberno不在select memberno from Dimit中,TsugDateTime将被考虑在内?第一级是成员辞职,即ai005,第二级是成员ai003、ai004、ai005,但我们需要使用ai003获得第三级,ai004循环类似于第一级。我创建了六个脚本查询,手动从级别1到级别6获得六个级别,但这不是一个答案,如何创建从级别1到最终级别循环的查询,使用单个脚本自动循环。小提琴链接是一个很好的问题补充,但问题不应该依赖于它——它应该是独立的。我已经将您的样本数据的DDL和DML编辑到问题中,请记住在您将来的问题中包含它们。现在,您的问题不是很清楚。请将它包括您想要的结果和当前的尝试。