2017-07-26 5 views
0

私は2つのテーブルを最初に持っていましたが、実際のテーブルの2番目は一時的です。私はこの2つのテーブルを比較しなければならなかった。最初のテーブルは 'KartelaKod'フィールドがtempの 'KartelaKodu'フィールドと一致する必要があります。最初の 'OzellikKod'フィールドはtempの 'OzellikKodu'と一致する必要があり、最初の 'AltKod'フィールドはtempの 'StokKodu'と一致する必要があります。 Tables複数の行と列をSQLサーバーで比較する

最後に一致しない場合は、 ''が返されます。

PS:VrtUrunKodに従って最初のテーブルをグループ化する必要があります。 例では、MAM | 002(VrtUrunKod)のOzellikKodフィールドが一時テーブルのOzellikKoduフィールドと一致しない場合は、別のVrtUrunKodレコードが検索されます。

Edit1:isnull((Select TOP 1 VrtUrunKod From KonfigOlusmusOzellikler k Where Sirket_Kod = @sp_Sirket_Kod and AnaUrunKod = @spStokKod and exists(Select * From #TempDegisen t Where t.KartelaKodu = k.KartelaKodu and t.OzellikKodu = k.OzellikKod and t.StokKodu = k.AltKod)),'')これは今まで私がSirket_Kodフィールドとパラメータを無視することができるものです。

+0

これまでに作成したSQLを投稿できますか? –

+0

私は私の質問を追加しました。しかしもちろん、これは間違っているだけで私を比較する行が1つだけ戻ってくるだけです。 –

+0

あなたの質問を誤解し始めて、私は思う..あなたは、2つのテーブルが一致するかどうかを記述する1行の結果を望んでいますか、または一致しないすべての行のリストが必要ですか? –

答えて

0

これは、tと一致しないkがあり、kと一致しないkがある行のリストを生成するはずです。行がない場合は、すべての行が一致します。

SELECT * 

FROM 
    KonfigOlusmusOzellikler k 
    FULL OUTER JOIN 
    #TempDegisen t 
    ON 
    t.KartelaKodu = k.KartelaKodu and 
    t.OzellikKodu = k.OzellikKod and 
    t.StokKodu = k.AltKod 

WHERE t.KartelaKodu IS NULL OR k.KartelaKodu IS NULL 
関連する問題