SQL sorusu (cevap doğru mu değil mi)
Eklediğim resimdeki veritabanı tablolarını göre aşağıdaki soruların cevabı nedir?1. Eğer varsa, bu tablolar arasındaki ilişkiyi tanımlayınız. İsterseniz tablolarda değişiklik yapabilirsiniz.2. Birinci soruda belirlenen ilişkiye göre, her ürün için olan her satış sorumlusuna göre toplam satış miktarı
Eklediğim resimdeki veritabanı tablolarını göre aşağıdaki soruların cevabı nedir?
1. Eğer varsa, bu tablolar arasındaki ilişkiyi tanımlayınız. İsterseniz tablolarda değişiklik yapabilirsiniz.
2. Birinci soruda belirlenen ilişkiye göre, her ürün için olan her satış sorumlusuna göre toplam satış miktarını gösteren SQL sorgusunu yazınız.
3. Birinci soruda belirlenen ilişkiye göre, toplam ünite sayısı ve toplan satış miktarı dahil olmak üzere, IBM'e göre sıralanmış (IBM tarafından sipariş edilmiş) bütün ürünleri gösteren SQL sorgusunu yazınız.
Şu cevapları verdim, doğru mu:
1. Veritabanı ilişkisi iyi ve bir değişiklik yapmaya gerek yok. Şehirler silinebilir.
2. SELECT SalesPersons.Name AS Sales_Person, Products.Name AS Product,
SUM(Quantity*UnitPrice*(1-Discount)) AS Total_Sales_Amount
FROM SalesPersons
INNER JOIN Orders ON SalesPersons.PersonID = Orders.PersonID
INNER JOIN Products ON Orders.ProductID = Products.ProductID
GROUP BY SalesPersons.Name, Products.Name
ORDER BY SalesPersons.Name
3. SELECT Products.Name, SUM(Orders.Quantity), SUM(Quantity * UnitPrice * (1-Discount)) FROM Orders
INNER JOIN Products on Orders.ProductID = Products.ProductID
INNER JOIN Customers on Customers.CustomerID = Orders.CustomerID
WHERE Customers.Company = 'IBM'
GROUP BY Products.Name
Not: Benim için önemli ve acil cevap gerekiyor. Üstü işgal ettiğim için özür dilerim, yardım için de teşekkürler.
0
Birinci soruyu yanlış anlamadıysam tablolar arasındaki foregin key, ve kendi içindeki primary key'leri soruyor. Aksi taktirde Şehir ayrılabilinir.
0
bir kac yazar once
(
08.05.12)
Amaç normalizasyon ise "city" sütunu ayrı bir tablo olacak ve diğer tablolarda foreign key olarak yer alacak. aynı şekilde "orders" tablosundaki "discount" sütunu da tutarlılığı bozuyor. onu da ayrı bir tabloya alıp orders tablosuna foreign key olarak ekledin mi orders tablosu için normalizasyon başarılmış sayılabilir.
bunu söylerken fiyatların spesifik ürünlere özgü olduğunu kabul ediyoruz tabi. yoksa mesela tüm ürünler için 5 farklı fiyat grubu olsaydı onu da kendi tablosuna almamız gerekirdi.
0
hocam helal, ödevi iki dakkada temize çektin :)
0
1. company ve city tabloları oluşturulmalı. çıkarıldığı tablolar ile ilişkileri kurulmalı. orders tablosu ile diğer tabloların ilişkileri gayet açık zaten.
2. bu tablolar için query sonuç üretir, ama orders tablosunda kayıt olmadığı zaman sonuç dönmez, bu yüzden satış yapmayanları da görmek için ya left outer join kullanmalısınız ya da subquery.
3. ibm siparişlerine ulaşmak için query tamam gözüküyor.
0