merhabalar,
3 farklı tablom var buradan bazı bilgileri çekip dbgridde listeleyeceğim. 2 tablo olduğpunda bunu yapabildim fakat 3 tablo olunca nasıl yapacağımı beceremedim yardımcı olabilirseniz memnun olacağım.
INVOICES (invoiceid, date, belgeno, PAYEE, total_cost, sigortaref, aracref)
CARI_TABLE (recordno, definition, cariozelkod)
sigorta_table (kayitno, sigortasirketadi, ...)
arac_table(kayitno, marka, ...)
dbgridde adoquery ile INVOICES tablosu geliyor ayrıca bir kolondada cari_tablosunda ki cariunvani gösteriliyor. şimdi 2 tablodan daha veri çekmem ve aynı gridde göstermem gerekecek. sigorta_table.sigortasirketadi ve arac_table.marka
gridde INVOICES.kayitno, INVOICES.belgeno, cari_table.definition, sigorta_table.sigortasirketadi, arac_table.marka, INVOICES.fattoplam şeklinde show olması gerekecek.
iki tablo için yazdığım query şu şekilde
sql.text:='select INVOICES.INVOICEID, INVOICES.DATE, INVOICES.BELGENO, CARI_TABLE.definition, INVOICES.TOTAL_COST from INVOICES INNER JOIN CARI_TABLE ON INVOICES.PAYEE=CARI_TABLE.recordno'
bu 2 tablodan veriyi alıp gridde listeliyor ve faturaların yanında cari tablosunda ki faturada belirtilen cari kayitnosunun karşılığı olan caridefibnition listweliyor. şimdilki query sigortarefe göre sigortasirketadi ve aracref'e görede marka yı listeleyecek.
şimdiden herkese teşekkür ederim.
4 tablodan join ile veri çekmek ve dbgridde listelemek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: 4 tablodan join ile veri çekmek ve dbgridde listelemek
tekrar joinleri ekleyeceksiniz.
INNER JOIN sigorta_table ON sigorta_table.kayitno=INVOICES.sigortaref
INNER JOIN arac_table ON arac_table.kayitno=INVOICES.aracref
selecttede sigorta_table.sigortasirketadi, arac_table.marka filedlarını ekleyeceksiniz.
INNER JOIN sigorta_table ON sigorta_table.kayitno=INVOICES.sigortaref
INNER JOIN arac_table ON arac_table.kayitno=INVOICES.aracref
selecttede sigorta_table.sigortasirketadi, arac_table.marka filedlarını ekleyeceksiniz.
Bir kelimenin anlamını öğretsen bile yeter..



Re: 4 tablodan join ile veri çekmek ve dbgridde listelemek
query çalıştı ve görsel olarak bağlantıları kurdu fakat başka bir problemse şayet invoices da ki sigortaref veya aracref alanlarında değer yoksa bu sefer dgridde hiçbirşey göstermiyor ve boş olarak dbgrid listeleniyor bunu çözmek için ne yapabiliriz?
Re: 4 tablodan join ile veri çekmek ve dbgridde listelemek
merhaba ,
Dış join kullanabilrsiniz, bu durumda karşılık tabloda kayıt yoksa ilgili sahalar NULL olarak görüntülenecektir, yani yukarıudaki örnekteki INNER JOIN leri, LEFT OUTER JOIN olarak değiştirin.
Dış join kullanabilrsiniz, bu durumda karşılık tabloda kayıt yoksa ilgili sahalar NULL olarak görüntülenecektir, yani yukarıudaki örnekteki INNER JOIN leri, LEFT OUTER JOIN olarak değiştirin.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr