Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Abrak
Üye
Mesajlar: 189 Kayıt: 18 Kas 2004 05:30
Mesaj
gönderen Abrak » 26 Ara 2011 12:02
selamün aleyküm;
SATIS
----------
FIRMA_KOD
ALIS_FIRMA_KOD
..
..
FIRMA
-----------
FIRMA_KOD
FIRMA_UNVAN
..
..
anahtar kelime nedir?
işin mantığını bulamadım
Satışları girerken FIRMA_KOD ve ALIS_FIRMA_KOD aynı FIRMA Table'sindeki firma listesini kullanıyorum master-detail de bağlantı sorunum yok fakat;
CXGrid ile bunları tek kolonda listelerken SATIS daki FIRMA_KOD ve ALIS_FIRMA_KOD u iki defa FIRMA'dan nasıl alacağım
Kod: Tümünü seç
select * from SATIS,FIRMA Where satıs.fırma_kod=fırma.fırma.kod and satıs.alıs_fırma_kod = fırma.fırma_kod
mkysoft
Kıdemli Üye
Mesajlar: 3110 Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:
Mesaj
gönderen mkysoft » 26 Ara 2011 12:40
join komutunu kullanmalısınız.
Kod: Tümünü seç
select * from tablo1 join tablo2 using tablo1alan1=tablo2alan1
Abrak
Üye
Mesajlar: 189 Kayıt: 18 Kas 2004 05:30
Mesaj
gönderen Abrak » 26 Ara 2011 01:32
Uploaded with
ImageShack.us
Şimdi daha net oldu sanırım SATIS olarak FIRMA_KOD ve SATICI_FIRMA_KOD girişi var ama tek bir FIRMA table var ikisinide aynı anda nasıl alacağım FIRMA tablosundan
mkysoft
Kıdemli Üye
Mesajlar: 3110 Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:
Mesaj
gönderen mkysoft » 26 Ara 2011 04:22
yine join ile yapabileceğiniz gibi iç içe sql (subquery) yazabilrisiniz.
Kod: Tümünü seç
select *,(select ad from firma where id=firmakod) as firma_alici from satis
aslangeri
Moderator
Mesajlar: 4322 Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:
Mesaj
gönderen aslangeri » 26 Ara 2011 04:42
s.a
firma tablosuna iki kere join yapabilirsiniz.
Kod: Tümünü seç
select XXXXXX
from SATIS
left join FIRMA SATICIFIRMA on SATICIFIRMA.kodu=SATIS.SATICI_FIRMA_KOD
left joın FIRMA ALICIFIRMA on ALICIFIRMA.kodu=SATIS.FIRMA_KOD
gibi
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Abrak
Üye
Mesajlar: 189 Kayıt: 18 Kas 2004 05:30
Mesaj
gönderen Abrak » 26 Ara 2011 05:41
aslangeri yazdı: s.a
firma tablosuna iki kere join yapabilirsiniz.
Kod: Tümünü seç
select XXXXXX
from SATIS
left join FIRMA SATICIFIRMA on SATICIFIRMA.kodu=SATIS.SATICI_FIRMA_KOD
left joın FIRMA ALICIFIRMA on ALICIFIRMA.kodu=SATIS.FIRMA_KOD
gibi
kolay gelsin.
mkysoft yazdı: yine join ile yapabileceğiniz gibi iç içe sql (subquery) yazabilrisiniz.
Kod: Tümünü seç
select *,(select ad from firma where id=firmakod) as firma_alici from satis
Arkadaşlar ben anlayamadım işin espirisini çok özür dilerim enbaştaki sorumdaki tablo yapısına bakarmısınız tekrar yanlışlık olmasın;
Kod: Tümünü seç
SELECT * from SATIS
LEFT JOIN FIRMA ON SATIS.FIRMA_KOD=FIRMA.FIRMA_KOD
LEFT JOIN FIRMA ON SATIS.SATICI_FIRMA_KOD=FIRMA.FIRMA_KOD
2 nci join de hatam var aynı FIRMA tablosuna bağlanmaya çalıştığımdandır
emin_as
Üye
Mesajlar: 559 Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:
Mesaj
gönderen emin_as » 26 Ara 2011 08:20
Tablolara isim vererek dene.
Kod: Tümünü seç
SELECT * from SATIS S
LEFT JOIN FIRMA A ON S.FIRMA_KOD=A.FIRMA_KOD
LEFT JOIN FIRMA B ON S.SATICI_FIRMA_KOD=B.FIRMA_KOD
Abrak
Üye
Mesajlar: 189 Kayıt: 18 Kas 2004 05:30
Mesaj
gönderen Abrak » 10 Oca 2012 02:22
çok basittir ama çok zaman harcadım
aşağıda belirttiğim gibi yapmak istediğim FIRMA_UNVANI ve SATICI_FIRMA_UNVANI aynı FIRMA Tablesinden çekmek
joinle çektiğimde ise SATIŞ SATIRLARI tekrarlanmış oluyor
mkysoft
Kıdemli Üye
Mesajlar: 3110 Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:
Mesaj
gönderen mkysoft » 10 Oca 2012 03:28
yazdığınız SQL'i paylaşırsanız daha kolay olacak.
Abrak
Üye
Mesajlar: 189 Kayıt: 18 Kas 2004 05:30
Mesaj
gönderen Abrak » 10 Oca 2012 03:45
mkysoft yazdı: yazdığınız SQL'i paylaşırsanız daha kolay olacak.
Kod: Tümünü seç
select * from SATIS
right join FIRMA on (SATIS.FIRMA_KOD=FIRMA.FIRMA_KOD or SATIS.SATICI_FIRMA_KOD=FIRMA.FIRMA_KOD)
mkysoft
Kıdemli Üye
Mesajlar: 3110 Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:
Mesaj
gönderen mkysoft » 11 Oca 2012 01:50
Abrak yazdı: mkysoft yazdı: yazdığınız SQL'i paylaşırsanız daha kolay olacak.
Kod: Tümünü seç
select * from SATIS
right join FIRMA on (SATIS.FIRMA_KOD=FIRMA.FIRMA_KOD or SATIS.SATICI_FIRMA_KOD=FIRMA.FIRMA_KOD)
Kod: Tümünü seç
SELECT * FROM SATIS LEFT JOIN FIRMA F1 ON FIRMA_KOD=F1.FIRMA_KOD LEFT JOIN FIRMA F2 ON SATICI_FIRMA_KOD=F2.FIRMA_KOD
Abrak
Üye
Mesajlar: 189 Kayıt: 18 Kas 2004 05:30
Mesaj
gönderen Abrak » 11 Oca 2012 09:14
mkysoft yazdı: Abrak yazdı: mkysoft yazdı: yazdığınız SQL'i paylaşırsanız daha kolay olacak.
Kod: Tümünü seç
select * from SATIS
right join FIRMA on (SATIS.FIRMA_KOD=FIRMA.FIRMA_KOD or SATIS.SATICI_FIRMA_KOD=FIRMA.FIRMA_KOD)
Kod: Tümünü seç
SELECT * FROM SATIS LEFT JOIN FIRMA F1 ON FIRMA_KOD=F1.FIRMA_KOD LEFT JOIN FIRMA F2 ON SATICI_FIRMA_KOD=F2.FIRMA_KOD
Tamamdır çok tşk ederim F1 F2 benim istediğim di