Merhaba
bir türlü bu sorguya bir çözüm bulamadım.
bir yanda cari hareket tablosu bir yanda adresler tablosu var.
inner join yapamam çünkü her carinin adresi girilmiş durumda değil.
left joinde yaparsam iş karşıyor çünkü bir carinin birden fazla olabilir. aradaki bağlantı cari_kod alanı ile sağlanıyor. adresler ise adresno alanı ile ayırt ediliyor. left join yapıp where koşuluna adresno=1 dersem mantıksal olarak sorun yok ama bu seferde adresi girilmeyen kayıtlarda adresno diye birşey dönmediği için o satırlar sorgudan düşüyor.
geriye yapılacak ne kalıyor bu durumda.
Sql joinde birde fazla detay satırı varsa
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Sql joinde birde fazla detay satırı varsa
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Re: Sql joinde birde fazla detay satırı varsa
mesajınızı tam yorumlayamadım, left joinde neyden dolayı sorun oluyor ki?
sorgudan almak istediğiniz sonucu ve tablodaki belirleyici alanları yazarsanız birşeyler çıkar belki...
sorgudan almak istediğiniz sonucu ve tablodaki belirleyici alanları yazarsanız birşeyler çıkar belki...
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Sql joinde birde fazla detay satırı varsa
Neyi neye iliştireceğiz biraz karışmış. Sorudan anladığım her carinin birden fazla adres satırı var ve bunları hareket listesi ile birlikte listelemek sanırım. Burada ilk işlem basamağı tüm carileri listelemek ve her cari için bir adres satırının gelmesini sağlamak (select * from CARI_ADRES adresno in (select min(adresno) from CARI_ADRES group by cari_kod)). Böyle bir listeye hareketleri eklemek fazla sorun olmayacaktır.
Kod: Tümünü seç
select ana.*, adr.*, har.* from CARI as ana
left join
(select * from CARI_ADRES where adresno in (select min(adresno) from CARI_ADRES group by cari_kod)) as adr
/*her cariye tek adres*/
on ana.cari_kod=adr.cari_kod
left join CARI_HAREKET as har on har.cari_kod=ana.cari_kod
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Sql joinde birde fazla detay satırı varsa
allah allah . ben subselect ile yaptım diye mesaj atmıştım ama çıkmamış ?
tek sorun subselect te tek kolon döndüğü için 2 subselect kullanmak zorunda kalmamdı .
Şaban Akman 'ın cevabı gayet usta işiymiş. onu deneyeyim bilahare. 2 subselectten kurtulmuş olurum.
tek sorun subselect te tek kolon döndüğü için 2 subselect kullanmak zorunda kalmamdı .
Şaban Akman 'ın cevabı gayet usta işiymiş. onu deneyeyim bilahare. 2 subselectten kurtulmuş olurum.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog