MSSQL'de iki grup arasındaki kesişmeyen kayıtlar?

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
cagatay77
Üye
Mesajlar: 37
Kayıt: 31 Eki 2003 12:34

MSSQL'de iki grup arasındaki kesişmeyen kayıtlar?

Mesaj gönderen cagatay77 »

Esasında kullanım amacı önceden girilmiş olan seri numara grubu ile çıkış yapılacak seri numara grubu arasındaki benzer veya farklı kayıtları bulabilmek olacak.
Örnek verecek olursak;
ilk seri no grubu: 100 ile 120 arası ve
ikinci seri no grubu: 110 ile 123 arası ise;

121, 122, 123 numaralı seri numaralarının listeleneceği bir sorgu için uğraşıyorum ama şuan için sonuca varamadım.
Bu örnek üzerine paylaşım yapabilecek arkadaşlara şimdiden teşekkürler...
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
biraz daha örnek verirseniz belki yardımcı olabiliriz. "veritabanımdaki şu alana şu değerleri girmişim. kullanacağım komutla şu sonucu alabilmeliyim " gibi bir yapıda örnek verirseniz. belki yardımcı oluruz.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Eğer doğru anladıysam minus ile yapabilirsin.

Kod: Tümünü seç

select no
from tablo1
mimus
select no
form tablo2
iki tablodaki no alanlarını çekerek farkını verir.

Kolay gelsin.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

WHERE EXISTS (SELECT * ...

veya

WHERE NOT EXISTS (SELECT * ...

SUBSELECT queryleri ile yapabilirsin.

Ama tabi @ofenX'in dediği gibi sorunu tablo yapısını da belirterek daha net sorarsan direk cevap da alabilirsin.

İyi çalışmalar.
cagatay77
Üye
Mesajlar: 37
Kayıt: 31 Eki 2003 12:34

Mesaj gönderen cagatay77 »

Resim

Yukaridaki tabloda goruldugu gibi seri numaralarini, kayit yogunlugu nedeniyle "deger araligi" olarak tutuyorum. Gerceklestirmek istedigim sorgu ise Delphi yordamiyla disaridan girilecek bir deger araligi ile tablodaki deger araliginda bulunan farkli kayitlari bulmak.
Resimdeki ornekten yola cikacak olursak, disaridan 100101 ve 100103 degerlerini alip tablodaki degerlerle karsilastirdiktan sonra farkli olan 100103 degerine ulasmak.
Suan icin hala icinden cikamadigim icin for dongusu kullanacaga benziyorum. O da hiz acisindan cok fazla sorun olacak gibi gozukuyor.
Yapmis oldugunuz yorumlar icin de ayriyeten tesekkur ederim...
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba hocam,
ilk mesajınızı herhalde iyice okumadım. Ondan jetonum düşmedi.
sizin demek istediğiniz.
bir tabloda numaralar.
100,101,102,103...... 119,120
diğer tabloda
110,111,112,.....,120,121,122,123 sayıları var.
ve ikinci tabloda farklı olanları istiyorsanız. Hakan Can ın dediği gibi aşağıdaki gibi bir yapıyı deneyin.

Kod: Tümünü seç


SELECT DISTINCT KAYNO 
FROM EXCEPT2 
WHERE NOT EXISTS
   (SELECT *
   FROM EXCEPTICIN 
   WHERE EXCEPT2.KAYNO = EXCEPTICIN.KNO)

Aslında

Kod: Tümünü seç

select * from tablo1
except
select * from tablo2
gibi bir kullanım vardı. Ben kullanamadım. Ya da şuan desteklenmiyor. 2005 te destekliyor sanırım.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Cevapla