Iki tablo arasında olmayanları (null) listelemek

Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
MERHABA DEĞERLİ ARKADAŞLAR;

KAYIT VE YILLIK ADINDA İKİ TABLOM VAR.

kayit tablomda da yillik tablomda da "adi" adında birer sütunum var. ve yillik tablosundaki adi sütunundaki verileri kayit sayfasındaki adi sütunundan kaydediyorum. yani kayit.adi = yillik.adi tek farkları yillik tablosunda birden fazla olabilir hiç olmayabilir. ama eğer olursada kayitta mutlaka kaydı vardır.

İsteğim şey;

kayit tablosunun adi sütundaki veriler içerisinden yillik tablosunun adi sütununda olmayanların listelenmesi.

ilginiz için teşekkür ederim.
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Bu sorgu istediğiniz sonucu verir..:

select kayit.adi
from kayit left join yillik on kayit.adi=yillik.adi
where yillik.adi is null
 
Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
merhaba değerli taruz. yine bu konuyla alakalı olarak, iki tablo arasındakileri listelerken tarih koyabilir miyiz?

select kayit.adi
from kayit left join yillik on kayit.adi=yillik.adi
where (yillik.adi is null)*(yillik.tarih between#01/01/2010# and #12/31/2010#) şeklinde yapıyorum. fakat sonuç boş çıkıyor. veri çıkmıyor. ama ben yillik sayfasında kayit.adi 'lerden olmadığını biliyorum. yardımcı olabilirseniz çok sevinirim. iyi günler.
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Sn mücahitayan
sql kodunu aşağıdaki gibi değiştirin.
WHERE (((yillik.adi) Is Null) AND ((yillik.tarih) Between #01/01/2010# And #12/31/2010#));
 
Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
sayın ömer hocam bu benim istediğim şekilde olmamış :S ne yazıkki.

SELECT yillik.tarih, kayit.adi
FROM kayit LEFT JOIN yillik ON kayit.ID=yillik.adi
WHERE (((yillik.adi) Is Null) And ((yillik.tarih) Between #4/1/2010# And #4/30/2010#))*(kayit.kayit_yeri='BURSA-MUAYENEHANE')
ORDER BY yillik.tarih;

bu şekilde yaptım fakat yine herhangi bir listeleme olmuyor.
fakat (yillik.adi) Is Null) değerini (yillik.adi) Is not Null) olarak değiştirdiğimde değerler geliyor. ama benim istediğim belirtilen tarihler arasında yillik.adi sütununda olmayıpta, kayit.ID sütununda adı olanların listelenmesi. bunu yapamadım. yardımcı olabilirseniz çok sevinirim.
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Bu şekilde deneyiniz..:

Kod:
SELECT yillik.adi, kayit.adi, yillik.tarih, kayit.kayit_yeri
FROM kayit  left JOIN yillik ON kayit.ID = yillik.adi
WHERE (((yillik.adi) Is Null) AND ((kayit.adi) Is Not Null) AND ((kayit.kayit_yeri)="BURSA-MUAYENEHANE"))
 
Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
sayın taruz tarih olmadan istediğim sonuca zaten aşağıda vermiş olduğunuz şekilde ulaşmıştım.
Merhaba..

Bu sorgu istediğiniz sonucu verir..:

select kayit.adi
from kayit left join yillik on kayit.adi=yillik.adi
where yillik.adi is null
fakat tarih koyarak yapabilir miyiz? onu merak ediyorum. yani kayit sayfasında adı bulunan fakat yıllık sayfasında belirlediğim 2 tarih arasında adı bulunmayanları listelemek istiyorum.
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Bir örnek eklerseniz daha kolay sonıca ulaşabilirsiniz.
kodlarınızdan çıkarabildiğim hata "and" yerine yıldız " * " kullanmanız.
 
Katılım
6 Mart 2007
Mesajlar
28
Excel Vers. ve Dili
excel 2007
tablo_personel tablo_giris
ID AdSoyad ID AdSoyad Tarih
1 adsoyad1 1 adsoyad1 01.01.2011
2 adsoyad2 2 adsoyad2 01.01.2011
3 adsoyad3 3 adsoyad3 01.01.2011
4 adsoyad4 4 adsoyad4 01.01.2011
5 adsoyad5 5 adsoyad5 01.01.2011
6 adsoyad6 6 adsoyad6 01.01.2011
7 adsoyad7 7 adsoyad7 01.01.2011
8 adsoyad8 8 adsoyad8 01.01.2011
9 adsoyad9 9 adsoyad9 01.01.2011
10 adsoyad10 10 adsoyad1 001.01.2011
11 adsoyad1 02.01.2011
12 adsoyad3 02.01.2011
13 adsoyad4 02.01.2011
14 adsoyad5 02.01.2011
15 adsoyad6 02.01.2011
16 adsoyad7 02.01.2011
17 adsoyad8 02.01.2011
18 adsoyad9 02.01.2011
19 adsoyad10 02.01.2011


02.01.2011 tarihinde tablo_giris tablosunda adsoyad2 isimli kişi yok.
tablo_personel sayfasındaki tüm kişileri alacak, tablo_giris ile
karşılaştıracak ve 1.tabloda olup 2.tabloda olmayan adsoyad2 isimli
kişiyi listeleyecek
teşekkür ederim.
 
Katılım
25 Ağustos 2007
Mesajlar
48
Excel Vers. ve Dili
ofis 2007
sayın; maed2312
taruz beyin örneğini uylayabirdiniz...

Kod:
select tablo_personel.AdSoyad
from tablo_personel left join tablo_giris on tablo_personel.adsoyad=tablo_giris.AdSoyad
where tablo_giris.Adsoyad is null
 
Katılım
25 Ağustos 2007
Mesajlar
48
Excel Vers. ve Dili
ofis 2007
sayın; mücahitayan

ömer beyin cevabını dikkate almadınızmı .. ?


Kod:
 SELECT yillik.tarih, kayit.adi
FROM kayit LEFT JOIN yillik ON kayit.ID=yillik.adi
WHERE (((yillik.adi) Is Null) And ((yillik.tarih) Between #4/1/2010# And #4/30/2010#)) and (kayit.kayit_yeri='BURSA-MUAYENEHANE')
ORDER BY yillik.tarih;
 
Katılım
6 Mart 2007
Mesajlar
28
Excel Vers. ve Dili
excel 2007
sayın jon206, omerceri ;
çok teşekkür ederim. işimi gördü.
 
Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
değerli arkadaşlar, sayın ömer bey;

uzun süre yazamadığım için kusura bakmayın, yıl sonu hesapları ile uğraşıyordum yoğunluğumu bitirdim, programa devam ediyorum :)

Sayın ömer hocam, ekte benim kullandığım veri tabanının ufaltılmışını gönderdim. orda sorguda sizin verdiğiniz kod yazılı. ama daha öncede dediğim gibi bir sonuç vermiyor ne yazık ki.

o sorguda istediğim sonucu aşağıdaki gibi olabilir mi acaba?

yillik sayfasında; 01.04.2010 tarihi ile 30.04.2010 tarihi arasında, kayit sayfasında kayit_yeri BURSA-MUAYENEHANE olan kayit.adi 'lerden belirttiğim tarihler arasında yillik sayfasında kaydı olmayanları listelemek istiyorum. gönderdiğim vt'de sonuç aşağıdaki şekilde çıkması gerekiyor sayın hocam.

-----------------------------------------------
ID adi
3 GHY SAĞLIK KABİNİ
-----------------------------------------------

acaba olabilir mi böyle bir sonuç. bende yaklaşık 3 aydır bu sonucu çıkartamadım. ilginiz için teşekkür eder, geçikmeli cevabım için özür dilerim.
 

Ekli dosyalar

Katılım
25 Ağustos 2007
Mesajlar
48
Excel Vers. ve Dili
ofis 2007
sayın mücahitayan; vt nizde 1-2 değişiklik yaptım;
yıllık tablosuna kayıt yeri açtım

sorgu1 ve sorgu2 ekledim..

sorgu2 senin istediğin sonucu veriyor iyi çalışmalar..
 

Ekli dosyalar

Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
tmm bu sonuç değeri veriyor, farklı bir şekilde yaklaşım olmuş bunu düşünmemiştim teşekkür ederim. fakat sanırım tek bir sorgu komutu ile bu sonuca ulaşamıyoruz.
 
Katılım
25 Ağustos 2007
Mesajlar
48
Excel Vers. ve Dili
ofis 2007
sayın mücahitayan;
aslında tek sorgu halinde de ulaşılabiliryoruz..

sorgu3 inceleyiniz..

Kod:
 SELECT kayit.adi, kayit.kayit_yeri
FROM kayit
WHERE (((kayit.kayit_yeri)="BURSA-MUAYENEHANE") AND ((([kayit].[adi]) In (select adi from yillik WHERE (((yillik.kayit_yeri)="BURSA-MUAYENEHANE") AND ((yillik.tarih) Between #4/1/2010# And #4/30/2010#))))=No));
 

Ekli dosyalar

Katılım
24 Kasım 2008
Mesajlar
148
Excel Vers. ve Dili
2003
evet hocam tam olarak budur. çok karışık geldi ama inceleyeceğim. kod istediğim şekilde çalışıyor. ilgi alakanız için çok çok teşekkür ederim. ellerinize sağlık.
 
Üst