Sql 在自联接中,删除具有相同ID的行
我的密码 这是为了加入员工在创建信用文档引用时所犯的错误“链接”是将他们连接在一起的东西,但信用“文档引用”通常是相同的,但有时会创建2个拆分信用 我使用Doc_ref查看与之链接的任何退货。这就是我的困境Sql 在自联接中,删除具有相同ID的行,sql,sql-server,tsql,Sql,Sql Server,Tsql,我的密码 这是为了加入员工在创建信用文档引用时所犯的错误“链接”是将他们连接在一起的东西,但信用“文档引用”通常是相同的,但有时会创建2个拆分信用 我使用Doc_ref查看与之链接的任何退货。这就是我的困境 SELECT DISTINCT A.LINE_ID, CASE WHEN POSITIVE.Doc_Ref = B.Link AND A.Link = B.Link AND A.Doc_Ref != B.Doc_Ref AND A.Principal_Ref != B.Princi
SELECT DISTINCT A.LINE_ID, CASE
WHEN POSITIVE.Doc_Ref = B.Link AND A.Link = B.Link AND A.Doc_Ref != B.Doc_Ref AND A.Principal_Ref != B.Principal_Ref AND A.Outlet_Name = B.Outlet_Name THEN rtrim(A.[Doc_Ref]) + ' | ' + rtrim(B.[Doc_Ref])
ELSE A.Doc_Ref
END AS Doc_Ref,
A.Glue_Code, A.CCN_Name, A.Doc_Date, A.Outlet_Code, A.Outlet_Name,
A.Link, A.Principal_Ref
FROM NEGITIVE A, NEGITIVE B, POSITIVE WHERE A.Doc_Ref != B.Doc_Ref AND A.Link = B.Link ORDER BY Doc_Ref
我的成绩
474 ABP0008918 | ABP0008919 GPT05610 PTA 2021-05-04 15078428
474 ABP0008918 GPT05610 PTA 2021-05-04 15078428
475 ABP0008919 | ABP0008918 GPT05610 PTA 2021-05-04 15078428
475 ABP0008919 GPT05610 PTA 2021-05-04 15078428
我想看到的只是
474 ABP0008918 | ABP0008919 GPT05610 PTA 2021-05-04 15078428
475 ABP0008918 | ABP0008919 GPT05610 PTA 2021-05-04 15078428
请注意,查询完成后,Doc_Ref的外观必须相同
谢谢。如果您能展示一下表格和内容,会有帮助的 但是,看起来您没有任何连接条件来产生笛卡尔连接 尝试在WHERE子句中添加“AND a.LINK=POSITIVE.Doc\u Ref”:
FROM NEGITIVE A, NEGITIVE B, POSITIVE
WHERE A.Doc_Ref != B.Doc_Ref
AND A.Link = B.Link
AND A.LINK = POSITIVE.Doc_Ref
ORDER BY Doc_Ref
发展任何人都不应该使用。