4 tablodan join ile veri çekmek ve dbgridde listelemek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

4 tablodan join ile veri çekmek ve dbgridde listelemek

Mesaj gönderen kazimates »

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.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: 4 tablodan join ile veri çekmek ve dbgridde listelemek

Mesaj gönderen conari »

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.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

Re: 4 tablodan join ile veri çekmek ve dbgridde listelemek

Mesaj gönderen kazimates »

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?
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: 4 tablodan join ile veri çekmek ve dbgridde listelemek

Mesaj gönderen vkamadan »

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.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla