Detail Tablodan istenen kaydı çekmek

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

Detail Tablodan istenen kaydı çekmek

Mesaj gönderen akuyumcu63 »

merhaba;

Master tablomdaki kayıtlar ile Detail tablodaki kayıtlardan Sondan bir önceki kaydı eşitlemek istiyorum. bunun için yazmam gereken SQL sorgusu için yardımcı olabilirmisiniz.
örneğin;
ARACLAR tablosu ve YAKITFIS tablom var bu iki tablodan ARACLAR tablosundaki örneğin 63 VY 251 Plakalı aracın YAKITFIS tablosundaki fiş kayıtlarından sondan bir önceki yakıt fiş kaydı ile eşitlenmesini istiyorum. yeni yakıt fişleri eklensede her zaman her aracın sondan bir önceki yakıt fişi ile eşitlenmesi gerekiyor.

Teşekkür ederim.
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Detail Tablodan istenen kaydı çekmek

Mesaj gönderen Kuri_YJ »

Selamlar,
Eşitlenmesi derken kastettiğiniz tam olarak nedir. Yani Master tabloda A Kaydına ulaştığınızda, A Kaydına ait detay tablolardan en son kaydın bir önceki kaydına gitsin. (Bu arada en son kayıt, neye göre en son? Tarih, sıra, fiş no vs? )

Bunu bir procedure ile yapıp kendinize detayın en sondan bir önceki kaydın (*) ID'sini döndürürsünüz ve programınızda bu kayda konumlanırsınız.

Anlattıklarınıza göre böyle bir şey yapabilirsiniz ama doğrudan Query ile yazmak biraz sorunlu olur.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: Detail Tablodan istenen kaydı çekmek

Mesaj gönderen akuyumcu63 »

merhaba;

Kod: Tümünü seç

select skip ((select count(*) - 2 from TBLYAKITFIS 
Where (PLAKA='63VV111'))) * from TBLYAKITFIS 
Where (PLAKA='63VV111') order by TARIH asc
bu şekilde bir çözüm bulmuştum. ihtiyacı olan kullanabilir.

teşekkür ederim.
İsteyen, yapabildiğinden daha fazlasını yapar.
Cevapla