Umarım bu konuda yardımcı olabilirsiniz, DB2, OR ve OS'de iki araç tablomuz var, VEYA teslim edilecek arabaların siparişlerinin verildiği yer, VE işletim sistemi zaten o arabalar. satıldı, OR tablosundaki tüm siparişlere başvurmak istiyorum ama OS tablosunda iptal edilenleri değil, iptal edilenleri durumlarına göre belirliyorum ('8'), bu sorgu ile denedim, ancak aldığım siparişler sadece OS tablosundakiler değil, tüm siparişler OS tablosunda değil, bir DIŞ JOIN ile denedim ama beklediğim sonuç değil.DB2 Sorgulama Birikimine Katılıyor
SELECT OR.OBNO, OR.ORSC, OS.SCLD
FROM
TABLE.OR LEFT OUTER JOIN TABLE.OS ON OR.OBNO=OS.OBNO
WHERE OS.SLCD NOT IN ('8')
bu sadece işletim sistemi tablosundaki bana tüm siparişleri alır ve OR masa SLCD statüsü yoktur (OR tabloda olanlar hariç, ben bir 8 statüsüne sahip tüm siparişleri dışlamak istediğiniz OS tablosu, ancak OS tablosunda olmayanları tutmak).
Bu, aynı sonuçtur.
SELECT OR.OBNO, OR.ORSC, OS.SCLD
FROM
TABLE.OR LEFT OUTER JOIN TABLE.OS ON OR.OBNO=OS.OBNO AND OS.SLCD NOT IN ('8')
Umarım birisi bana yardımcı olabilir. çok teşekkürler
Kişisel ikinci deneyin yanlış ve aynı sonucu dağıtmayacak. İlk önce benim için iyi görünüyor ama bunun neyle yanlış olduğunu düşündüğünüzü tam olarak anlayamıyorum. Sol birleşim olduğu gibi, sol tablonuzun tüm satırlarını döndürecek - ki bu OR'tır, fakat siz "OS tablosundaki tüm siparişleri" yazdınız. – MichaelTiefenbacher
Evet, sol dış birleştirmenin OR tablosundaki tüm satırları döndüreceğini düşündüm, ancak bu durumda yalnızca SLCD durumuyla OS tablosundaki siparişleri döndürür, SADECE olan siparişlerin verilerini de almak istiyorum OR tablosunda, NOT IN koşulunu koyduğumda, sorun olduğunda, yalnızca OR tablosundaki siparişleri döndürmüyor. Yardımın için teşekkür ederim. –