Arkadaşlar içinden çıkamadığım bi sorunum var.
İki adet tablom var ve bu iki tabloyu kullanrak bir view oluşturmam gerekiyor.
TABLE1
STOKKOD
ADI
TARIH
...
TABLE2
STOKKOD
RENK
DESEN
...
Bu iki tabloyu stok kodundan birbirine bağlayıp Table2 den Renk alacam.
Fakat Table1 de olan stokkod Table2de hiç yok.Öyle olunca kayıt getirmiyor.BEn Table2de kayıt olmasada Table1den STOKKOD,ADI getirmesini istiyorum.LEft Right Full outer join denedim ama Table2de hiç kayıt olmadığı için hala görmüyor.
TEşekkürler
SQL view oluşturma sorunu
Normalde
şeklinde çalışması lazım. Eğer yazdığım sql kodunu verirsen daha fazla yardımcı olabiliriz belki.
Kod: Tümünü seç
SELECT * FROM TABLE1 LEFT JOIN
TABLE2 ON TABLE1.STOKKOD = TABLE2.STOKKOD
Kod: Tümünü seç
SELECT dbo.UISEMRI0.ISEMRI, dbo.UISEMRI0.STOKKOD, dbo.USTOKOZELLIK0.DEGER AS ATKI1
FROM dbo.UISEMRI0 LEFT OUTER JOIN
dbo.USTOKOZELLIK0 ON dbo.UISEMRI0.SIRKOD = dbo.USTOKOZELLIK0.SIRKOD AND
dbo.UISEMRI0.STOKKOD = dbo.USTOKOZELLIK0.STOKKOD
WHERE (dbo.UISEMRI0.ISEMRI = 123927) AND (dbo.USTOKOZELLIK0.KOD = 'ATKI 3')
yazdığım kod bu normalde evet left outer join ile çalışması lazım ama yok USTOKOZELLIK table inde bağlantı olan STOKKODU kaydı olmadığı için UISEMRI0 daki değerleride getirmiyor.
west
WHERE kullanımın hatalı.
İkinci tablo için kullandığın şartı ya NULL ile garanti altına alacaksın veya o şartı JOIN bölümüne taşıyacaksın.
İyi çalışmalar.
İkinci tablo için kullandığın şartı ya NULL ile garanti altına alacaksın veya o şartı JOIN bölümüne taşıyacaksın.
Kod: Tümünü seç
SELECT dbo.UISEMRI0.ISEMRI, dbo.UISEMRI0.STOKKOD, dbo.USTOKOZELLIK0.DEGER AS ATKI1
FROM dbo.UISEMRI0 LEFT OUTER JOIN
dbo.USTOKOZELLIK0 ON dbo.UISEMRI0.SIRKOD = dbo.USTOKOZELLIK0.SIRKOD AND
dbo.UISEMRI0.STOKKOD = dbo.USTOKOZELLIK0.STOKKOD AND dbo.USTOKOZELLIK0.KOD = 'ATKI 3'
WHERE dbo.UISEMRI0.ISEMRI = 123927
veya
SELECT dbo.UISEMRI0.ISEMRI, dbo.UISEMRI0.STOKKOD, dbo.USTOKOZELLIK0.DEGER AS ATKI1
FROM dbo.UISEMRI0 LEFT OUTER JOIN
dbo.USTOKOZELLIK0 ON dbo.UISEMRI0.SIRKOD = dbo.USTOKOZELLIK0.SIRKOD AND
dbo.UISEMRI0.STOKKOD = dbo.USTOKOZELLIK0.STOKKOD
WHERE dbo.UISEMRI0.ISEMRI = 123927 AND (dbo.USTOKOZELLIK0.KOD IS NULL OR dbo.USTOKOZELLIK0.KOD = 'ATKI 3')
Yok ben join tanımlarının tümünü denedim
iki tablo STOKKOD dan birbirine bağlı. Birinci tabloda olan bazı stokkodları ikinci tabloda yok. stokkodundan bağladığım için 1.tablo değerleride gelmiyor.Örnek
TABLE1
STOKKOD=C01
ADI=JAKAR
TARIH=01.01.2006
...
TABLE2
STOKKOD= ("C01" stokkodu yok)
RENK...
DESEN....
iki tablo stokkodundan bağlı ben bu sorgu sonucu
STOKKOD=C01
ADI=JAKAR
RENK=null
DESEN=null
olarak gelmesini istiyorum ama hepsi boş geliyor
iki tablo STOKKOD dan birbirine bağlı. Birinci tabloda olan bazı stokkodları ikinci tabloda yok. stokkodundan bağladığım için 1.tablo değerleride gelmiyor.Örnek
TABLE1
STOKKOD=C01
ADI=JAKAR
TARIH=01.01.2006
...
TABLE2
STOKKOD= ("C01" stokkodu yok)
RENK...
DESEN....
iki tablo stokkodundan bağlı ben bu sorgu sonucu
STOKKOD=C01
ADI=JAKAR
RENK=null
DESEN=null
olarak gelmesini istiyorum ama hepsi boş geliyor
west