2016-11-16 13 views
0

私は自己結合を行って1つのシステムの会社コードを比較する必要があるという質問があります。テーブル値の自己結合

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 iが必要とされない8810と比較します。あなただけの出力にa.BUKRS <> b.BUKRS一度それぞれの行が必要な場合は

案内してください:)

を参照してくださいイメージが事前に

enter image description here

おかげで、 Vjの

+1

よりも大きいです。 –

+0

目的を指定するだけでいいですか?自己結合の目的は何ですか? – rbr94

+0

@VijayVanamalaあなたは 'とa.BUKRS <> b.BUKRS'ではなく、あなたの参加条件で'とa.BUKRS Boneist

答えて

1

を添付することを回避する方法、私は条件a.BUKRS > b.BUKRSを使用することをお勧めします。

これはあなたが見つけるために使用できる最も単純なソリューションです明確な「BUKRS」のすべてLIFNRどこ数はあなたが、むしろ非稼働クエリを与えるよりも、あなたが何をしたいのかを説明すべきである1

+0

感謝のエミール、それは私を助けました:) –