自联接表值重复

时间:2016-11-16 14:05:14

标签: sql oracle11g

我有一个查询,我必须自己加入来比较一个系统中的公司代码。

select a.LIFNR LIFNR,b.LIFNR B_LIFNR,a.BUKRS BUKRS,b.BUKRS B_BUKRS,
       a.SPERR SPERR,b.SPERR B_SPERR
from Q45_LFB1 a
join Q45_LFB1 b
on a.LIFNR = b.LIFNR  and a.BUKRS <> b.BUKRS
and a.lifnr = '111000444';

输出:

LIFNR B_LIFNR BUKRS B_BUKRS SPERR B_SPERR
444    444    8810   1960     X 
444    444    2170   1960     X 
444    444    8810   2170     X     X
444    444    1960   2170           X
444    444    2170   8810     X     X
444    444    1960   8810           X

如输出中所示,8810与1960年相比,1960年我与不需要的8810相比。如何避免

请指导:)

见附件图片

enter image description here

提前致谢, VJ

1 个答案:

答案 0 :(得分:1)

如果您只需要输出a.BUKRS <> b.BUKRS每行一次的行,那么我建议使用条件a.BUKRS > b.BUKRS

这是最简单的解决方案,您可以使用它找到所有LIFNR,其中不同的&#39; BUKRS&#39;大于一个