Son 100 Kaydı Listeleme

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
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Son 100 Kaydı Listeleme

Mesaj gönderen akuyumcu63 »

merhaba;

firebird de son 100 hareketi listelemek istiyorum. yaptığım araştırmaya göre

select first 100 .....
... order by ID desc

yukarıdaki gibi bir kodla alınabiliniyor. ancak DESC yapmadan artan sıralama yapılmış iken sondan belli sayıda kaydın listelemesini nasıl yapabilirim.

teşekkür ederim.
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Son 100 Kaydı Listeleme

Mesaj gönderen mussimsek »

Merhaba,

Ya SP yapacaksın. Max(ID) ile en yüksek ID'yi alıp, ID>Max(ID)-100 gibi bir şey yapacaksın. Ya da subquery yapacaksın.

select SQ.*
from (senin SQLin) as SQ
order by SQ.ID

gibi.

Kolay gelsin.
anemos
Üye
Mesajlar: 110
Kayıt: 02 Nis 2007 07:51
Konum: Sakarya / Hendek

Re: Son 100 Kaydı Listeleme

Mesaj gönderen anemos »

Procedure veya Execute block içinde çalıştırılırsa etkili sonuç alınabilir. Ör:

Kod: Tümünü seç

declare say integer;

select count(*) tablo into :say;

for select * from tablo rows say - 100 to say into :field_listesi do
  begin
    suspend;
  end
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: Son 100 Kaydı Listeleme

Mesaj gönderen akuyumcu63 »

merhaba;
mustafa hocamın yapmış olduğu açıklamaya göre işlemi yaptım.

anemos kardeş sizinkini uygulayamadım. vermiş olduğunuz kodu kendi sistemime uyarlayıp QUERY nin içine yazarak sonuç almaya çalıştım. olmadı.

kodu nasıl uygulayacağım konusunda biraz yardımcı olursanız memnun olurum.
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Son 100 Kaydı Listeleme

Mesaj gönderen freeman35 »

yazdığından anladığım şu, hem z-a sıralanmış olacak ama a-z sıralamasında ilk x kayıt gelecek ? buysa tek sql içinde zor sanırım,
ama nested select le olabilir belki,
select first 100 .....
ilk_tablo.ID as ilk_tablo_id
Ikınci_tablo.ID as Ikinci_tablo_id,
..
from tablo_adi ilk_tablo
join tablo_adi Ikinci_tablo (ilk_tablo.ID = Ikinci_tabloID)
order by ID desc
bu fikir verebilir belki
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: Son 100 Kaydı Listeleme

Mesaj gönderen akuyumcu63 »

merhaba;
hem z-a sıralanmış olacak ama a-z sıralamasında ilk x kayıt gelecek
hem z-a sıralanmış olacak ama a-z sıralamasındaki SON 100 yada 200 kayıt gelecek. tam olarak yapmaya çalıştığım bu

teşekkür ederim.
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Son 100 Kaydı Listeleme

Mesaj gönderen mrmarman »

İç içe select kullanıp denediniz mi?

Kod: Tümünü seç

Select * from tablo1 where kayno in ( select top 100 kayno from tablo1 order by asc)  order by desc
gibisinden... İç select, çekilecek ilk 100 kaydın key alanını döndürecek, dış select ise bu ürün listeden güdümlenip z-a sonuç döndürecek.

ASC demeye gerek yoktu ama anlatımı güçlendirmek için sıralama yönünü ifade etmeye faydası var.
Resim
Resim ....Resim
Cevapla