none
Ortalama Satış Miktarı RRS feed

  • Soru

  • Northwind de ortalama satış miktarımın üzerine cıkan satıslarımı listelemek istiyorum.Şöle bi sorgu yazdım ama cvp dönmüyo neden olabilir

    Select ProductName,UnitPrice from Products where UnitPrice>(Select AVG(UnitPrice*Quantity*(1-Discount))from [Order Details]) order by UnitPrice

    tesekkürler..

    20 Ekim 2012 Cumartesi 01:04

Yanıtlar

  • Yazdığınız sorgu SQL'ce doğru görünüyor. "Select AVG(UnitPrice*Quantity*(1-Discount))from [Order Details]" iç sorgu gerçekten satış tablosunda tüm satışların ortalamasını getirecektir. Bu değeri Products tablosu için filtre vermişsiniz. Yani sorgunuz "Ürün tablosunda birim fiyatı satış tablosunda ortalama satış fiyatından yüksek olan ürünleri" getirecektir.

    Bu ortalamanın üzerine çıkan siparişler için yine "[Order Details]" tablosunu kullanmanız gerekmiyor mu. Yani aşağıdaki gibi yapmanız daha doğru olmaz mı.

    Select UnitPrice from [Order Details] 
    where UnitPrice*Quantity*(1-Discount)>(Select AVG(UnitPrice*Quantity*(1-Discount))from [Order Details]) order by UnitPrice

    Ayrıca sanırım ürün adına da ihtiyaç duyuyorsunuz. Bu durumda bu sorgu ile Product tablosunu JOIN etmeniz yeterli olacaktır.


    Ahmet Kaymaz
    http://www.ahmetkaymaz.com
    C# VB.NET ASP.NET kitabı

    20 Ekim 2012 Cumartesi 07:11

Tüm Yanıtlar

  • Group By kullanmamışsın ... 

    Eğer sorgunda Grouplamak istediklerini de eklersen AVG fonksiyonuna göre sonuç dönecektir.

    20 Ekim 2012 Cumartesi 06:50
  • Yazdığınız sorgu SQL'ce doğru görünüyor. "Select AVG(UnitPrice*Quantity*(1-Discount))from [Order Details]" iç sorgu gerçekten satış tablosunda tüm satışların ortalamasını getirecektir. Bu değeri Products tablosu için filtre vermişsiniz. Yani sorgunuz "Ürün tablosunda birim fiyatı satış tablosunda ortalama satış fiyatından yüksek olan ürünleri" getirecektir.

    Bu ortalamanın üzerine çıkan siparişler için yine "[Order Details]" tablosunu kullanmanız gerekmiyor mu. Yani aşağıdaki gibi yapmanız daha doğru olmaz mı.

    Select UnitPrice from [Order Details] 
    where UnitPrice*Quantity*(1-Discount)>(Select AVG(UnitPrice*Quantity*(1-Discount))from [Order Details]) order by UnitPrice

    Ayrıca sanırım ürün adına da ihtiyaç duyuyorsunuz. Bu durumda bu sorgu ile Product tablosunu JOIN etmeniz yeterli olacaktır.


    Ahmet Kaymaz
    http://www.ahmetkaymaz.com
    C# VB.NET ASP.NET kitabı

    20 Ekim 2012 Cumartesi 07:11