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.
Son 100 Kaydı Listeleme
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43
Son 100 Kaydı Listeleme
İsteyen, yapabildiğinden daha fazlasını yapar.
Re: Son 100 Kaydı Listeleme
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.
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.
Re: Son 100 Kaydı Listeleme
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
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43
Re: Son 100 Kaydı Listeleme
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.
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.
Re: Son 100 Kaydı Listeleme
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
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 !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43
Re: Son 100 Kaydı Listeleme
merhaba;
teşekkür ederim.
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 buhem z-a sıralanmış olacak ama a-z sıralamasında ilk x kayıt gelecek
teşekkür ederim.
İsteyen, yapabildiğinden daha fazlasını yapar.
Re: Son 100 Kaydı Listeleme
İç içe select kullanıp denediniz mi?
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.
Kod: Tümünü seç
Select * from tablo1 where kayno in ( select top 100 kayno from tablo1 order by asc) order by desc
ASC demeye gerek yoktu ama anlatımı güçlendirmek için sıralama yönünü ifade etmeye faydası var.