--CROSS JOIN...:Tablodaki tüm kayıtları birbiri ile --kartezyen çarpım yaparak birbiri ile ilişkilendirir --------------------------------------------------- --soru...:Hangi personel hangi ürünlerden satış yapmamıştır. select p.Adi,u.UrunAdi from Personeller p cross join Urunler u --buraya kadar yaptıgımız kartezyen çarpımdır. except--hangi personel hangi üründen satış yapmıştır. select p.Adi, u.UrunAdi from Personeller p left join Satislar s on s.PersonelID=p.PersonelID left join SatisDetay sd on sd.SatisID=s.SatisID left join Urunler u on u.UrunID=sd.UrunID group by p.Adi , u.UrunAdi---------------------------------------------------
--soru...: Hangi tedarikçiden hangi ürün hiç tedarik edilmemiştir. select t.SirketAdi,u.UrunAdi from Urunler u cross join Tedarikciler t except--aşagıda hangi tedarikçi hangi ürünü tedarik etmiştirin cevabı select t.SirketAdi,u.UrunAdi from Tedarikciler t left join Urunler u on t.TedarikciID=u.TedarikciID group by t.SirketAdi,u.UrunAdi---------------------------------------------------
--Hangi ürün hangi müşteriye hiç satılmamıştır. select u.UrunAdi,m.MusteriAdi from Urunler u cross join Musteriler m except --Hangi ürün hangi müsteriye satılmıştır. select u.UrunAdi,m.MusteriAdi from Urunler u left join SatisDetay sd on u.UrunID=sd.UrunID left join Satislar s on s.SatisID=sd.SatisID left join Musteriler m on m.MusteriID=s.MusteriID group by u.UrunAdi,m.MusteriAdi
Bu blog yazılarımda temelde c# ve ERP olmak üzere c, c++, java ,veri yapıları, algoritmalar , yazılım ve bilişim sektörüne yönelik öğrendiğim faydalı ve pratik bilgileri sizlere aktarmaya çalışacağım.
2018/02/01
CROSS JOIN
SQL OUTER JOIN
--OUTER JOIN --outer join(dış birleşim)...:İlişkili tablolardaki null --kayıtlar dahil bütün kayıtalrı getirir. --3 Çeşit outer join(dış birleşim) vardır. --1. si left outer join(sol dış birleşim)..:left join de soldaki --null dahil bütün kayıtlar getirilir.Diger tablonun ise sadece ilişkili --kısımlarını getirir. select * from Satislar left join Musteriler on Satislar.MusteriID=Musteriler.MusteriID --2.si right outer join(sağ dış birleşim)...:right joinde
--sağdaki tablonun null dahil --bütün degerlerini getirir. Diger tablonun ise sadece ilişkili verileri gelir. select * from Satislar right join SatisDetay on Satislar.SatisID=SatisDetay.SatisID --3.sü ise full outer join...: Her iki tabloda null
--kayıtlar dahil bütün kayıtları getirir. select * from Urunler full outer join Kategoriler on Urunler.KategoriID=Kategoriler.KategoriID --soru..:Kesişim kümesi hariç diger alanları listele select * from Urunler full outer join Kategoriler on Kategoriler.KategoriID=Urunler.KategoriID where Kategoriler.KategoriID IS NULL OR Urunler.KategoriID IS NULL --Hangi tedarikçiden toplamda kaç dolarlık ürün tedarik edilmiştir. --(tüm tedarikçiler gelmelidir.) select Tedarikciler.TedarikciID,sum(Urunler.Fiyat)
from Tedarikciler left join Urunler on- Urunler.TedarikciID=Tedarikciler.TedarikciID group by Tedarikciler.TedarikciID --Hiç satış yapılmayan müşterilerimizi listeleyen sorguyu yazınız. select * from Musteriler left join Satislar on Musteriler.MusteriID=Satislar.MusteriID where Satislar.SatisID Is null --nakliye edilmeyen siparişleri listeleyiniz. select * from Satislar left join Nakliyeciler on Nakliyeciler.NakliyeciID=Satislar.ShipVia where Satislar.ShipVia IS NULL select * from Nakliyeciler select * from Satislar --Hiç nakliye yapmayan nakliyecileri listeleyen sorguyu yazınız. select * from Nakliyeciler left join Satislar on Nakliyeciler.NakliyeciID=Satislar.ShipVia where Satislar.ShipVia IS NULL --Hangi personel hangi üründen hiç satış yapmamıştır. select Urunler.UrunAdi,Personeller.adi from Personeller left join Satislar on Personeller.PersonelID=Satislar.PersonelID left join SatisDetay on Satislar.SatisID=SatisDetay.SatisID left join Urunler on Urunler.UrunID=SatisDetay.UrunID group by Urunler.UrunAdi,Personeller.adi
Kaydol:
Kayıtlar (Atom)