如何解决对于Sql Server 19图节点,我需要添加外部自联接
我正在尝试在Sql服务器19中设计一个Graph结构,在该结构中我需要在节点中模拟自身外部联接...节点具有设备和设备类型。级别列通过指定设备类型来建立设备层次结构。在某些材料明细表中,Eq_A可能直接附加到Eq_L,而不会在中间插入Eq_X。当我想将物料连接到设备并列出所有物料时,我将不得不使用OUTER JOIN功能来确保列出所有物料及其设备层次结构。
材料Eqiup1装备2装备3
A Eq_A Eq_X Eq_L
B Eq_A NULL Eq_L
C Eq_A Eq_X Eq_L
要提取此信息,我需要在设备节点内进行外部自连接。这里的问题是Sql Server GRAPH不支持OPTIONAL MATCH,并且子查询方法不适用于自联接。任何人都可以建议解决方法来解决此问题 我试图创建以下查询以实现此目的。这可能没有太大帮助,因为在此过程中它变得太复杂了,因此我举了上面的例子
SELECT DISTINCT tnodeEqui.Id ,REPLACE(tnodeEqui.Id,'Press_','')PressNumber ,tnodeEqui2.Id模具编号 ,tod.Id Skin_Part_Number ,tod.Autoid Skin_Part_Autoid ,案件 当tnodemb.Id ='Dummy_Part' 然后“无” ELSE REPLACE(tnodemb.Id,'SMC-','') END SMC_Type ,1是原版 ,0是新的 从tblNodeMatlBill tnodemb ,tblEdgeOpsDefToMatBill tedgeprodtobill ,tblEdgeOpsDefToMatBill tedgeprodtobill1 ,tblEdgeOpsDefToMatBill tedgeprodtobill2 ,tblEdgeOpsDefToMatBill tedgeprodtobillcb ,tblnodeOpsSegEquipSpec tnodeEqui ,tblEdgeProductToOpsSegEquip产品 ,tblnodeOpsDef tod ,tblEdgeOpsSegEquipToEquip tedgeopstoequip ,tblnodeEquip te ,tblEdgeEquipToEquipCls tedgeEquiptoCls ,tblnodeEquipCls tec 左外连接( SELECT tNodeOSESCB。$ NODE_ID AS OSNodeId 来自tblNodeOpsSegEquipSpec tNodeOSESCB ,tblEdgeOpsSegEquipToEquip tedgeopstoequip ,tblNodeequip tNodeEC ,tblnodeOpsDef tod ,tblEdgeProductToOpsSegEquip prodtoopsCB ,tblEdgeEquipToEquipCls tedgeEquiptoClsCB ,tblnodeEquipCls tecCB ,tblEdgepresstoCasettebase tepresstoCB 在哪里匹配(tod-(prodtoopsCB)-> tNodeOSESCB-(tedgeopstoequip)-> tNodeEC-(tedgeEquiptoClsCB)-> tecCB) AND MATCH(tnodeEqui-(tepresstoCB)-> tNodeOSESCB) AND tNodeOSESCB.Activestatus = 1 AND tecCB.Id ='CassetteBase' AND tecCB.ActiveStatus = 1 AND tNodeEC.activestatus = 1 )AS JoinOpsCls放在torsesCB上。 , tblnodeOpsSegEquipSpec tnodeEqui1 ,tblEdgeProductToOpsSegEquip prodtoops1 ,tblEdgeOpsSegEquipToEquip tedgeopstoequip1 ,tblnodeEquip te1 ,tblEdgeEquipToEquipCls tedgeEquiptoCls1 ,tblnodeEquipCls tec1 ,tblnodeOpsSegEquipSpec tnodeEqui2 ,tblEdgeProductToOpsSegEquip prodtoops2 ,tblEdgeOpsSegEquipToEquip tedgeopstoequip2 ,tblnodeEquip te2 ,tblEdgeEquipToEquipCls tedgeEquiptoCls2 ,tblnodeEquipCls tec2 ,tblEdgeBasemoldtomold tedgebaseMtomold ,tblEdgepresstoCasettebase tedgepresstocb 1 = 1 AND MATCH(tnodemb tnodeEqui-(tedgeopstoequip)-> te-(tedgeEquiptoCls)-> tec) AND MATCH(tnodemb tnodeEquicb-(tedgeopstoequipcb)-> tecb-(tedgeEquiptoClscb)-> teccb) AND MATCH(tnodemb tnodeEqui1-(tedgeopstoequip1)-> te1-(tedgeEquiptoCls1)-> tec1) 和匹配(tnodemb tnodeEqui2-(tedgeopstoequip2)-> te2-(tedgeEquiptoCls2)-> tec2) AND MATCH(tnodeEqui1-(tedgebaseMtomold)-> tnodeEqui2) AND MATCH(tnodeEqui-(tedgepresstocb)-> tnodeEquicb) AND tec2.Id ='模具' AND tec1.Id ='BaseMold' AND tec.Id ='Press' AND tecb.Id ='CassetteBase' AND tec.LEVEL ='生产单位' AND tnodeEqui.Id = te.ID AND te.ActiveStatus = 1 AND tecb.ActiveStatus = 1 AND tec.LEVEL = tec2.LEVEL AND tnodeEqui.Id ='Press_06' ORDER BY tnodeEqui.Id
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。