Order By, Sum, First Ve Skip

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
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Order By, Sum, First Ve Skip

Mesaj gönderen Fatih! »

Merhaba,

Belli kriterlere göre arama ve sıralama yapıyorum. bu kriterleri alarak başka bir query ile toplam giriş ve çıkışları da elde ediyorum.

Sıralamayı terstten yaptığım zaman, kayıtları sondan seçmeye başlayamıyorum. Örnek aşağıda. İnşallah kendimi ifade edebilmişimdir.

Kod: Tümünü seç

select FIRST 20 SKIP 0 *  from TBL_MUSTERI ORDER BY IDNO DESC 
örnek
id - tutar
1 - 10
2 - 20
3 - 5

İlk 2 kaydı ASC olaeak seçip toplarsam 30, DESC olarak sıralarsam 25 sonucunu almam gerk.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Order By, Sum, First Ve Skip

Mesaj gönderen aslangeri »

s.a.
fb nin hangi versiyonunu kullanıyorsunuz.
tersten sıraladığınız zaman toplamı kaç alıyorsunuz.
kodları gönderebilirmisiniz?
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Order By, Sum, First Ve Skip

Mesaj gönderen emin_as »

Firebird language reference da işina yarar bazı örnekler var.



http://www.firebirdsql.org/refdocs/lang ... first-skip

Kod: Tümünü seç

select skip ((select count(*) - 10 from People))
  id, name from People
  order by name asc
Ayrıca first - skip yerine rows u kullanmanın daha dogru olacagıda söyleniyor.

http://www.firebirdsql.org/refdocs/lang ... elect-rows

Kod: Tümünü seç

SELECT <columns> FROM ...
   [WHERE ...]
   [ORDER BY ...]
   ROWS <m> [TO <n>]

<columns>  ::=  The usual output column specifications.
<m>, <n>   ::=  Any expression evaluating to an integer.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Re: Order By, Sum, First Ve Skip

Mesaj gönderen Hakan Can »

Şöyle bir SQL cümlesi daha garanti gibi:

Kod: Tümünü seç

SELECT
  FIRST 20 T1.*
FROM
 (SELECT * FROM TBL_MUSTERI ORDER BY IDNO DESC) T1
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Re: Order By, Sum, First Ve Skip

Mesaj gönderen sadettinpolat »

Eger dogru anladiysam belirli bir sayidaki kaydi Asc olarak siralayip secmek istiyorsun , buldugun bu kayitlari ise Desc olarak siralanmasini istiyorsun.

Hakan Can 'in yontemi en mantikli yontem bana gore.

Kod: Tümünü seç

Select * from (Select First 10 * from Tablo T1 Order By Alan Asc) T2
Order By T2.Alan
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Re: Order By, Sum, First Ve Skip

Mesaj gönderen Fatih! »

Çok teşekkür ederim. Hallettim.

@aslangari, FB2.1.1 ve D2009 kullanıyorum :oops:
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Order By, Sum, First Ve Skip

Mesaj gönderen Kuri_YJ »

Selamlar,

DESCending bir sorgu gönderiyorsan, ayrıca sorgulama yaptığın alanlar için DESC bir index de oluştur ki, kayıtlar arttıkça performansın hezimete uğramasın ;)

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla