Sql de Master / Details Bağlamak

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
unforgiven
Üye
Mesajlar: 75
Kayıt: 19 Eyl 2003 09:50
Konum: ANKARA

Sql de Master / Details Bağlamak

Mesaj gönderen unforgiven »

herkese merhaba , forumda aradım fakat benim istedigim sonucu vermedi. iki tablom var bir tanesinde
TABLO 1 TABLO 2
inx_no inx_no
adi sec_inx_no
soyadi tartim_tarihi
adres agirlik
tel gunluk_agirlik_artisi

normal sartlarda iki Query ile birbirine bağlıyorum fakat benim istedigim ;
Tablo1 de
inx_no adi soyadı adres tel
1 ahmet barış ankara 22222

kaydı ise

Tablo2 de
inx_no sec_inx_no tartim_tarihi agirlik gunluk_agirlik_artisi
1 1 15/11/2004 10 0,500
2 1 15/12/2004 12 0,500
3 1 09/02/2005 15 0,850

oldugunu varsayarsak sorgulamada cıkan ;

adi soyadi adres tel tartim_tarihi agirlik gunluk_agirlik_artisi
ahmet barış ankara 22222 09/02/2005 15 0,850

olacak daha doğrusu benim istediğim sonuc table 2 de en son kayıtları cıkaracak ben ya table 2 deki kayıt sayısınca ahmet barış çıkıyor yada hiç çıkmıyor. Bu konuda yardımcı olursanız sevinirim. yarımınız için teşekür ederim.
Misafir

Mesaj gönderen Misafir »

son kayıt derken, tarihi en büyük kayıt anlayabilir miyiz.

max(tarih) dersen olur mu mesela
unforgiven
Üye
Mesajlar: 75
Kayıt: 19 Eyl 2003 09:50
Konum: ANKARA

Mesaj gönderen unforgiven »

Evet Fakat Seconder index enbuyuk olan kayıt da olabilir. max denedim fakat hata verdi.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

walla ben anlamadım açıkçası yazdıklarından @mikrocunun verdiği yöntemde benim aklıma ilk gelen. Bir de şu field alanlarını ve değerlerini code olarak belirtseydin daha anlaşılır olurdu, kim nereye neyle bağlı ben anlamadım. ayrıca hata verdi demişsinde ne hatası ?? veri tabanı ne kullandığına bağlı bunu en basitinden bir SP içinde yapabilirsin sanırım

kolay gele
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 !!!
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

elimde uygun veri olmadığı için deneme şansım yok. fakat bu join olayı şu şekilde denenebilir;

Kod: Tümünü seç

select t1.adi, t1.soyadi, t1.adres, t1.tel, t2.tartim_tarihi, t2.agirlik, t2.gunluk_agirlik_artisi from table1 t1 table2 t2
where t2.inx_no = t1.inx_no
group by t1.adi, t1.soyadi, t1.adres, t1.tel, t2.tartim_tarihi, t2.agirlik, t2.gunluk_agirlik_artisi
having max(t2.tartim_tarihi) = (select max(t22.tartim_tarihi) from table1 t11 table2 t22
where t22.inx_no = t11.inx_no)
denemekte fayda var :wink: :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla