C#nedir?com Homepage
Forum Home Forum Home > Veritabanları > SQL Server
  New Posts New Posts RSS Feed - Sql distinct ve group by bir arada kullanımı
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Sql distinct ve group by bir arada kullanımı

 Post Reply Post Reply
   

Author
Message
darbikator View Drop Down
Groupie
Groupie


Joined: 23 Ağustos 2010
Location: Turkey
Status: Offline
Points: 133
Post Options Post Options   Thanks (0) Thanks(0)   Quote darbikator Quote  Post ReplyReply Direct Link To This Post Topic: Sql distinct ve group by bir arada kullanımı
    Posted: 14 Eylül 2014 at 17:24
Merhaba uzun zaman oldu buraları özlemişim :) herkese selamlar

Sorum şu ki müşterilerin hangi film türünü daha çok tercih ettiği ve bu türe ne kadar toplamda ücret ödediklerini bulan sorguyu yazmaya çalışıyorum. Hangi türü daha çok tercih ettiklerini ise o türe maksinum harcadıkları paradan çıkartmam gerekiyor.


select DISTINCT Musteriler.MusteriAd, MAX(FilmSatis.BirimFiyat*FilmSatis.Adet), FilmTurleri.TurAdi from Musteriler inner join FilmSatis on Musteriler.MusteriNo=FilmSatis.MusteriNo inner join Filmler on FilmSatis.FilmNo=Filmler.FilmNo inner join FilmTurleri on Filmler.FilmTurNo=FilmTurleri.TurID GROUP BY MusteriAd,TurAdi

Bu kod musterilerin hangi türe ne kadar para harcadığını ayrı ayrı veriyor fakat bizim istediğimiz müsterinin en çok hangi türe para harcağı ve bu türün hangisi olduğu yani defalarca bilgi olmayacak har musteri için tek bir bilgi olacak. Musteri sonucta farklı farklı turden filmler satın almış olabiliyor. Umarım durumu anlatabilmişimdir.

Yardımlarınız için şimdiden teşekkürler
Bayram ÇETIN [email protected]
----------------------
Daha öğrenmem gereken o kadar çok şey var ki
Back to Top
darbikator View Drop Down
Groupie
Groupie


Joined: 23 Ağustos 2010
Location: Turkey
Status: Offline
Points: 133
Post Options Post Options   Thanks (0) Thanks(0)   Quote darbikator Quote  Post ReplyReply Direct Link To This Post Posted: 14 Eylül 2014 at 17:36
Aslına bakarsanız group by da kullanmama gerek kalmıyor.

select DISTINCT MusteriAd, (FilmSatis.BirimFiyat*FilmSatis.Adet) as Tutar, FilmTurleri.TurAdi from Musteriler inner join FilmSatis on Musteriler.MusteriNo=FilmSatis.MusteriNo inner join Filmler on FilmSatis.FilmNo=Filmler.FilmNo inner join FilmTurleri on Filmler.FilmTurNo=FilmTurleri.TurID order by Tutar desc

bu kodda bilgileri veriyor. Fakat dediğim gibi musterileri tekrar etmemesi gerekiyor yani DISTINCT kodunu yemiyor. Nasıl çözeceğim bilmiyorum
Bayram ÇETIN [email protected]
----------------------
Daha öğrenmem gereken o kadar çok şey var ki
Back to Top
seser View Drop Down
Senior Member
Senior Member


Joined: 04 Temmuz 2005
Status: Offline
Points: 4654
Post Options Post Options   Thanks (0) Thanks(0)   Quote seser Quote  Post ReplyReply Direct Link To This Post Posted: 15 Eylül 2014 at 12:03
Group By
acil durumda camı kırınız!
Back to Top
darbikator View Drop Down
Groupie
Groupie


Joined: 23 Ağustos 2010
Location: Turkey
Status: Offline
Points: 133
Post Options Post Options   Thanks (0) Thanks(0)   Quote darbikator Quote  Post ReplyReply Direct Link To This Post Posted: 16 Eylül 2014 at 13:42
Group ile musteriAd ve musteriSoyad kolonlarını grupladığım zaman TurAd kısmında da Aggregate fonksiyon kullanmam gerekiyor hangisini kullandı isem doğru sonuç vermedi Yada TurAd kısmını da group by a eklemek gerekiyor. ekleyince de Musteriler çoğalıyor. bu şekilde de olmuyor. Alt sorgu ile yapılması gerekiyor galiba :(
Bayram ÇETIN [email protected]
----------------------
Daha öğrenmem gereken o kadar çok şey var ki
Back to Top
seser View Drop Down
Senior Member
Senior Member


Joined: 04 Temmuz 2005
Status: Offline
Points: 4654
Post Options Post Options   Thanks (0) Thanks(0)   Quote seser Quote  Post ReplyReply Direct Link To This Post Posted: 17 Eylül 2014 at 14:16
TurAd sutununu da group by'a ekle
acil durumda camı kırınız!
Back to Top
 Post Reply Post Reply
  Share Topic   
   


Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.01
Copyright ©2001-2014 Web Wiz Ltd.