vt2 hafta5 NOB
-- hangi siparişi, hangi müşteri hangi çalışana vermiştir??
-- hangi nakliyeci taşımıştır? Siparişte hangi üründen kaç liraya
-- kaçtane satılmıştır, indirim uygulanmışmıdır?
-- Ürünlerin Satıcı Firmasını
--ve Kategorisini de gösteriniz
SELECT Siparişler.SiparişNo,
Siparişler.MüşteriNo,
Müşteriler.Adı AS MüşAd, Müşteriler.Soyadı AS MüşSoyad,
Siparişler.ÇalışanNo,
Çalışanlar.Adı + ' ' +Çalışanlar.Soyadı AS Çalışanlar,
Nakliyeciler.ŞİRKET AS KargoFirması,
[Sipariş Detayları].ÜrünNo, Ürünler.ÜrünAd,
Kategoriler.KategoriAdı,
[Sipariş Detayları].BirimFiyat,
[Sipariş Detayları].Miktar, [Sipariş Detayları].İndirim,
Satıcılar.FirmaAdı AS SatıcıFirma
FROM Siparişler
INNER JOIN Müşteriler
ON Siparişler.MüşteriNO = Müşteriler.MüşteriNo
INNER JOIN Çalışanlar
ON Siparişler.ÇalışanNo = Çalışanlar.ÇalışanNo
INNER JOIN Nakliyeciler
ON Siparişler.Nakliyeci = Nakliyeciler.NAKLİYECİNO
INNER JOIN [Sipariş Detayları]
ON Siparişler.SiparişNo = [Sipariş Detayları].SiparişNo
INNER JOIN Ürünler
ON [Sipariş Detayları].ÜrünNo = Ürünler.ÜrünNo
INNER JOIN Satıcılar
ON Ürünler.SatıcıFirmaNo = Satıcılar.SatıcıFirmaNo
INNER JOIN Kategoriler ON Ürünler.KategoriNo = Kategoriler.KategoriNo
SELECT * FROM Çalışanlar
-- Neden dış birleştirme ??
-----------------------------------------------
-- kaç müşteri? kaç sipariş var ?
SELECT COUNT(*) FROM Müşteriler -- 119
SELECT COUNT(*) FROM Siparişler -- 87
-- sipariş vermemiş müşteriler var!!!!
--Hangi müşteri, hangi siparişi vermiştir
-- Sipariş vermiş Müşteriler ::
SELECT * FROM Siparişler -- 10 tane sipariş vermiş müşteri var
INNER JOIN Müşteriler
ON Siparişler.MüşteriNo = Müşteriler.MüşteriNo
-- 87-9 = 78 siparişi Müşteriler tablosuna kayıtlı
-- olmayan birileri sipariş etmiş
------Tablo Birleştirme
-- INNER JOIN : İç birleştirme
-- OUTER JOIN : dış birleştirme
LEFT OUTER JOIN : SOL DIŞ BİRLEŞTİRME
Bir iç birleştirme + soldaki tablonun birleştirme
koşuluna uymayan kayıtları
RIGHT OUTER JOIN : SAĞ DIŞ BİRLEŞTİRME
Bir iç birleştirme + sağdaki tablonun birleştirme
koşuluna uymayan kayıtları
FULL OUTER JOIN : TAM DIŞ BİRLEŞTİRME
Bir iç birleştirme + soldaki ve sağdaki tablonun
birleştirme koşuluna uymayan kayıtları
SELECT * FROM solTablo INNER JOIN SağTablo ON...
--Hangi müşteri, hangi siparişi vermiştir
-- Sipariş vermemiş Müşteriler ile birlikte listeleyiniz
-- (birleştime koşulunı sağlamayan Müşteriler)
SELECT SiparişNo,Müşteriler.Adı, Müşteriler.Soyadı
FROM Siparişler -- sol
RIGHT OUTER JOIN Müşteriler -- sağ
ON Siparişler.MüşteriNo = Müşteriler.MüşteriNo
Order by SiparişNo
----------------------------------------------
--Hangi müşteri, hangi siparişi vermiştir?
-- kimin verdiği belirli olmayan siparişler ile
-- birlikte listeleyiniz
-- (birleştime koşulunı sağlamayan Siparişler)
SELECT SiparişNo,Müşteriler.Adı, Müşteriler.Soyadı
FROM Siparişler -- sol
LEFT OUTER JOIN Müşteriler -- sağ
ON Siparişler.MüşteriNo = Müşteriler.MüşteriNo
Order by SiparişNo
--------------------------------------------------
--Hangi müşteri, hangi siparişi vermiştir?
-- Sipariş vermemiş müşteriler ve
-- kimin verdiği belirli olmayan siparişler ile
-- birlikte listeleyiniz
-- (birleştime koşulunı sağlamayan hem Siparişler
-- hem de Müşteriler isteniyor)
SELECT SiparişNo,Müşteriler.Adı, Müşteriler.Soyadı
FROM Siparişler -- sol
FULL OUTER JOIN Müşteriler -- sağ
ON Siparişler.MüşteriNo = Müşteriler.MüşteriNo
Order by SiparişNo
Yorumlar
Yorum Gönder