Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
344
Tıklama
0
Öne Çıkarma
MsSql Sorgu Hatası
H
12 yıl
Er
Konu Sahibi

uzun suredır verıtabanı ıle ılgılenmıyordum bılgılerımı tazelemek ıcın bakayım dedım elımdekı ornek verıtabanında cesıtlı sorgular yazıyordum yapamadıgım ksımda yardımlarınızı beklıyorum
siparis degerının toplamı, sıparıs degerlerının ortalasından buyuk olan verılerı almak ıstıyorum bıseyler denedım ama kacırdıgım bı yer var sanırım

 
select sı.SiparisID,SUM(sd.BirimFiyat*sd.Miktar) as toplam,AVG(sd.BirimFiyat*sd.Miktar) as ortalama from Siparisler AS SI
left join SiparisDetaylari as sd
on(sd.SiparisID=SI.SiparisID)
GROUP BY SI.SiparisID
HAVING SUM(sd.BirimFiyat*sd.Miktar)>AVG(sd.BirimFiyat*sd.Miktar)


sorun ıse her sıparısın altındakı siparıs detayların ayrı ayrı ortalamasını ve toplamını alıp karsılastırması
ben tum sıparıs detaylarının ortalasını alıp ,her sıparısın altındakı sıparıs detayı ıle genel ortalayı karsılastırmak ıstıyorum

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



C
12 yıl
Er

Aşağıdaki şekilde tekrardan deneyebilir misin?

select sı.SiparisID,SUM(sd.BirimFiyat*sd.Miktar) as toplam,AVG(sd.BirimFiyat*sd.Miktar) as ortalama from Siparisler AS SI
left join SiparisDetaylari as sd
on(sd.SiparisID=SI.SiparisID)
where (sd.BirimFiyat*sd.Miktar)>AVG(sd.BirimFiyat*sd.Miktar)


Bu mesaja 1 cevap geldi.
F
12 yıl
Yarbay

Northwind e göre Orders tablosundaki Freight icin dusunursek...

WITH Grup(Freight,CustomerID)
AS
(
SELECT AVG(Freight),CustomerID
FROM Orders
GROUP BY CustomerID
)
SELECT o.CustomerID,o.Freight,o.OrderID
FROM Orders O
LEFT JOIN
Grup G
ON O.CustomerID=G.CustomerID
WHERE g.Freight<O.Freight



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.