2016-11-16 33 views
0

我有一個查詢,我必須做自我加入比較一個系統中的公司代碼。自我加入表值重複

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'; 

OUTPUT:

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 i相不要求8810比較。如何避免

請指導:)

見圖片附提前

enter image description here

感謝, VJ

+1

你應該說明你想要做什麼,而不是讓非工作查詢simpliest解決方案。 –

+0

你能指定你的目的嗎?你的自我加入的目的是什麼? – rbr94

+0

@VijayVanamala你可能在'和a.BUKRS b.BUKRS' – Boneist

回答

1

如果你只需要輸出行,其中a.BUKRS <> b.BUKRS每一次,那麼我會建議使用條件a.BUKRS > b.BUKRS

這是你可以用它來找到所有LIFNR其中的不同「BUKRS」的數量大於1

+0

謝謝Emil,它幫了我:) –