en çok işleme alınan 10 kaydı alma

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

en çok işleme alınan 10 kaydı alma

Mesaj gönderen must_sargin »

iyi çalışmalar arkadaşlar,
programımda servis modülünde kullanmak istediğim servise en çok getiren 10 müşteriyi listelemek istiyorum. select max ile sadece 1 kayıt alıyor.acaba bu kullanımı nasıl yapabilirim.yardımlarınız için şimdiden teşekkürler.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Şuna benzer bir kod işinizi görebilir:

Kod: Tümünü seç

SELECT
  FIRST 10
  URUN_KODU,
  COUNT(URUN_KODU) AS SAYISI
FROM URUN_HAREKET
GROUP BY URUN_KODU
ORDER BY 2, 1
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Mesaj gönderen must_sargin »

s.a.
bu kodla tablonun başından başlayarak kayıtları alıyor.bu kod tam olarak istediğim işi yapmıyor.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Benzer demiştim. Yani acele oldu. Bu kod en az iş yapan müşterileri döndürür. Sıralamayı tersten yapmalısın. Yani ORDER BY 2 DESC demelisin:

Kod: Tümünü seç

SELECT 
  FIRST 10 
  URUN_KODU, 
  COUNT(URUN_KODU) AS SAYISI 
FROM URUN_HAREKET 
GROUP BY URUN_KODU 
ORDER BY 2 DESC, 1
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Mesaj gönderen must_sargin »

aynen dediğiniz gibi çalıştı üstad,çok teşekkürler.
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Mesaj gönderen must_sargin »

komutu sorunsuz çalıştırıyorum ancak bir kısımda takıldım.bu sorguyla servis tablosundaki en çok işleme alınan 10 kayıtı buluyorum ama bu sorguya cari tablosundaki ad soyad kısımlarını eklemem gerekiyor,iki tabloyu o sorguya eklediğimde hata veriyor.acaba nasıl bir yol izlemeliyim?
must_sargin
Üye
Mesajlar: 216
Kayıt: 14 Şub 2004 03:13
Konum: Gebze
İletişim:

Mesaj gönderen must_sargin »

arkadaşlar uzun uğraşlar sonucunda isimleri cari tablosundan almayı başardım.

select first 10 s.carino, count(s.carino) as SAYISI, c.adisoyadi from servis s LEFT JOIN cari c ON s.carino=c.carino
GROUP BY s.carino,adisoyadi
ORDER BY 2 DESC, 1

bu sorguyla en çok işlemi yapılan müşterileri adlarıyla birlikte gösterebildim.
Cevapla