iyi günler.
bir sql sorgusu yapmak istiyorum. şöyle...
iki tane tablo var. bu tablolar da birbiriyle bağlantılı.
kısaltarak yazıyorum... (Veritabanım access)
musteri tablosu
id
adi
adres
ziyaret tablosu
id
ziyaret
tarih
mid
musteri tablosundaki id ile ziyaret tablosundaki mid birbirine bağlı. müşterilerin ziyaret bilgileri ziyaret tablosunda.
bazı müşterilerin ziyaret kaydı yok bazılarının ise birden fazla var.
ben müşterileri ve son yapılan ziyareti bir tabloda göstermek istiyorum.
select musteri.*,ziyaret.* from musteri,ziyaret where musteri.id=ziyaret.mid dediğimizde bütün ziyaretleri gösteriyor ve ziyareti olmayan müşterileri göstermiyor.
istediğim ziyareti yapılmayan müşterileri de göstersin, birden fazla ziyaretleri olanlardan da son ziyareti göstersin.
Bunu yapmak mümkün mü? Muhtemelen mümkündür. yardımlarınız için teşekkürler.
sql ile iki tabloyu isteğime göre bağlama
Re: sql ile iki tabloyu isteğime göre bağlama
Kod: Tümünü seç
select ID,
adi,
adres,
(select top 1 ziyaret, tarih, mid from ziyaret
where ziyaret.ID=müsteri.ID order by tarih DESC)
from musteri
Bir kelimenin anlamını öğretsen bile yeter..



Re: sql ile iki tabloyu isteğime göre bağlama
Hocam çok teşekkürler.
bu kodu kullandığımda aşağıdaki hatayı alıyorum.
"Ana sorgunun FROM yan tümcesinde EXISTS saklı sözcüğünü kullanmadan birden çok alan döndürebilen bir alt sorgu yazdınız. alt sorgunun SELECT deyimini, yalnızca bir tek alan gerektirecek biçimde değiştirin"
Kod: Tümünü seç
SELECT id, adi, adres, (select top 1 ziyaret, tarih, mid from ziyaret where ziyaret.mid=musteri.id)
FROM musteri;
"Ana sorgunun FROM yan tümcesinde EXISTS saklı sözcüğünü kullanmadan birden çok alan döndürebilen bir alt sorgu yazdınız. alt sorgunun SELECT deyimini, yalnızca bir tek alan gerektirecek biçimde değiştirin"
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: sql ile iki tabloyu isteğime göre bağlama
Alt sorgu olarak Access çok başarılı olamasa da bazı kuralları gözetince gayet iyi derecede sorgular çalıştırabilmektedir. Mesela alttaki yapıda bir sorgu çalışacaktır diye tahmin ediyorum (tipi date olmayan alanda bu yapı bende çalıştı
).

Kod: Tümünü seç
select * from musteri
left join (select * from ziyaret where tarih in (select max(tarih) from ziyaret group by mid)) as tbl on musteri.id=tbl.mid
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: sql ile iki tabloyu isteğime göre bağlama
çok teşekkürler. sorgu çalıştı.