queryler arasında işlem yapmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikut

queryler arasında işlem yapmak

Mesaj gönderen ikut »

Merhaba

Şimdi bir query i çalıştırdık. 1. tablodan a b c 2. tablodan d e f alanlarını aldık.

a ve d alanları key olsun. kısaca alanlar 1. tablodaki her kayıt için 2. tablodada 1 kayıt olsun. burda bir sorun yok. 2. tablodaki e alanıda 3. tablodaki cinsiyet kolonuna verilen koda karşılık geliyor olsun. yani 3. tablo bir parametre tablosu ve 1. tablo ile kayıt sayısı vs eşitliği yok haliyle.

Aslında öğrenmek istediğim böyle 3 lü bir join nasıl yapılır.

Geçen buna tam bir cevap alamadığımdan ve olayıda tam kapamadığımdan şimdi birden fazla query kullanıp bu qery lerden gerekli alanları bir yerlerde depolayıp yapmayı düşündüm (hoş bu işi uzatacak ama ne yapalım maksat çözüm)...

2 tane query çalışmış kayıtlarda gridde duruyor. bunların alanlarını nasıl birleştiririm. (başka bir tablo yazmadan yapmanın yolunu soruyorum)
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Kod: Tümünü seç

select a,b,c,d,(select 3.cinsiyet from 3 where 3.e=2.e) as e from 1 join on a=d
ikut

Merhaba

Mesaj gönderen ikut »

mkysoft yazdı:

Kod: Tümünü seç

select a,b,c,d,(select 3.cinsiyet from 3 where 3.e=2.e) as e from 1 join on a=d
Merhaba örnek açık be anlaşılır ama ben bir türlü uygulayamadım.

Kod: Tümünü seç

SELECT FTD.FWTPFT AS FaturaTipi, FTD.FWNRFT AS FaturaNo, FTD.FWDTFT AS FaturaTarihi, FTD.FWCDCL AS FatMusteriNo, FTD.FWNRPA AS Ack1, FTD.FWNRBA AS Ack2, FTD.FWUMVN AS Birim, FTD.FWQTVN AS Miktar, FTD.FWPREZ AS BirimFiyat,FTD.FWIMRG AS Toplam, FTD.FWNRDC AS IrsaliyeNo, FTD.FWDTDC AS IrsaliyeTar,ANC.CDCLI AS MusteriNo, ANC.RASCL AS MusteriUnvani, ART.ARMCLV AS StokGrKod, ART.ARCDPD AS StokKodu, ART.ARDSES AS StokAdi, 
(SELECT TES.FTCNPG from ERDDAT.FTTES00F TES WHERE FTD.FWNRFT=TES.FTNRDC) as VadeTipi
FROM ERDDAT.FTDET103 FTD, ERDDAT.ANCLIL02 ANC,ERDDAT.ARTIC00F ART, 
WHERE  FTD.FWCDCL=ANC.CDCLI AND FTD.FWMCLV=ART.ARMCLV AND FTD.FWCDPD=ART.ARCDPD
yapmaya çalıştığım şey şu fatura satılarındaki stok kodu bilgilerini, ve müşteri bilgilerini join ediyorum.. burada bir sorun yok. ama bana vade tipinin açıklaması da gerek ama bu fatura detay dosyasında değilde fatura başlık dosyasında. keza aynı dosyada kadv oranı ve açıklamasıda var. ben onları bu querydeki her bir satırın yanın nasıl getireceğim. aklıma son bir çare 3-4 tane boş alan eklemek (space (20) as bosalan1) gibi ve sonra döngü içinde ilgili tablolardan bu bilgileri doldurmak geldi. ama böyle çok saçma ve yavaş olacak. millet 10 tabloyu join ederken bu kod neden olmaz. 4-5 gündür sıyırdım yani.
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Öncelikle iyi akşamlar;
Senin yapmak istediğin olaya benzer bir olayla bende epey bir uğraştım. Aşağıdaki linkteki bilgileri bie incele istersen. Umarım yardımcı
olur.
viewtopic.php?t=16134

Takıldığın yerden yardım ederiz yine...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
ikut

merhaba

Mesaj gönderen ikut »

Biltes yazdı:Öncelikle iyi akşamlar;
Senin yapmak istediğin olaya benzer bir olayla bende epey bir uğraştım. Aşağıdaki linkteki bilgileri bie incele istersen. Umarım yardımcı
olur.
viewtopic.php?t=16134

Takıldığın yerden yardım ederiz yine...
Hocam olay benzesede çok farklı benim sorunumda 4-5 ayrı tablodan join var. içiçe selectle çözmek lazım ama beceremedim...

saygılar
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Dersimiz JOIN . Arayalım ve dersimize birazcık çalışalım. Son bir kaç gündür epey konuştuk. Daha öncekilerde hesaplanırsa epey bir örnek var. Amaç; birden fazla tabloyu istenilen şekilde ilişkili alanlarla tek sorgu haline getirmek :idea: Genel yazım aşağıdaki gibi olabilir.. Beklentiye göre LEFT JOIN yerine RIGHT JOIN, INNER JOIN, OUTER JOIN, FULL JOIN kullanılabilir. Bir birinden farkları daha önce konuşuldu.

Kod: Tümünü seç

select t1.alan1, t1.alan2, t2.alan3, t3.alan5 from tablo1 t1
left join tablo2 t2 on (t2.key_alani = t1.key_alani)
left join tablo3 t4 on (t3.key_alani = t1.key_alani)
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ikut

Merhaba

Mesaj gönderen ikut »

rsimsek yazdı:Dersimiz JOIN . Arayalım ve dersimize birazcık çalışalım. Son bir kaç gündür epey konuştuk. Daha öncekilerde hesaplanırsa epey bir örnek var. Amaç; birden fazla tabloyu istenilen şekilde ilişkili alanlarla tek sorgu haline getirmek :idea: Genel yazım aşağıdaki gibi olabilir.. Beklentiye göre LEFT JOIN yerine RIGHT JOIN, INNER JOIN, OUTER JOIN, FULL JOIN kullanılabilir. Bir birinden farkları daha önce konuşuldu.

Kod: Tümünü seç

select t1.alan1, t1.alan2, t2.alan3, t3.alan5 from tablo1 t1
left join tablo2 t2 on (t2.key_alani = t1.key_alani)
left join tablo3 t4 on (t3.key_alani = t1.key_alani)
Hocam... Burda yazdığımın 10 katını webde araştırdım.. Sizin örneğiniz de komplex ama içiçiçe selectlerde yukarda belirttiğim gibi sorun var. 10 larca site link vs gezdim bir çözüm bulamadım.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

sanırım bu joinleri anlamak biraz zor oluyor, bende bazen kazıyorum.
:idea: ibexpertte tools - query builder i açıp oradan tablolardaki alanları sürükle bırak yaparak gerekli sorguyu oluştutturabilirsiniz :wink: yaşasın üşengeçlik :D
.-.-.-.-.-.-.-. ^_^
ikut

merhaba

Mesaj gönderen ikut »

mege yazdı:sanırım bu joinleri anlamak biraz zor oluyor, bende bazen kazıyorum.
:idea: ibexpertte tools - query builder i açıp oradan tablolardaki alanları sürükle bırak yaparak gerekli sorguyu oluştutturabilirsiniz :wink: yaşasın üşengeçlik :D
Adavnced query tool ile yaptım zaten sorguyu. ama ondada içiçe select yok. Neyse çok kafa şişirdim galiba
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

yazdığımız sorgular hayali oluyor. tablolarını sql yada db olarak bizede gönderebilirsen tam olarak çözüp sana cevap verebiliriz sanırım.
ikut

Mesaj gönderen ikut »

mkysoft yazdı:yazdığımız sorgular hayali oluyor. tablolarını sql yada db olarak bizede gönderebilirsen tam olarak çözüp sana cevap verebiliriz sanırım.
merhaba

tablolar as400 ve erp programından. 1 stok tablosunda 300 den fazla alan var. gerisi dusun artik...

genede bakayim bir
Cevapla