Yardımlarınız için şimdiden teşekkürler...
Personel Tablosu = {AHMET, BİROL, HASAN}
[Sertifika Tablosu]
SER_NO,PERS_ADI
============
4,AHMET
5,AHMET
6,AHMET
5,BİROL
6,BİROL
7,BİROL
5,HASAN
8,HASAN
9,HASAN
YANİ;
AHMET = {4,5,6}
BİROL = {5,6,7}
HASAN = {5,8,9}
Olduğuna göre ben şöyle bir sorunun cevabını istiyorum.
Sadece 5,6 sertifikasına sahip olan personeller kimlerdir. Sorgu Sonucunda bana {AHMET,BİROL} demesi gerekiyor, çünkü HASAN 6 sertifikasına sahip değil.
Nasıl bir sorgu çekeceğim yardımcı olursanız, sevirim.
Benim en son yapabildiğim sorgu cümlesi şu :
{
SELECT DISTINCT A.*
FROM PERSONEL A INNER JOIN
SERTIFIKA B ON A.pers_adi = B.pers_adi
WHERE
B.ser_no IN
(SELECT ser_no FROM SERTIFIKA
WHERE ser_no = 5 OR ser_no = 6)
}
join yardim.
- loribnaczo54
- Üye
- Mesajlar: 60
- Kayıt: 24 Nis 2006 07:42
- Konum: Bahçelievler/İst.
join yardim.
En son loribnaczo54 tarafından 28 Nis 2006 05:09 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
s.a.
1.sorunuzun başlığını değiştirirmisiniz.
(büyük harf olayı)
2. join in altında
şeklinde çalışması lazım
kolay gelsin.
1.sorunuzun başlığını değiştirirmisiniz.
(büyük harf olayı)

2. join in altında
Kod: Tümünü seç
...
INNER JOIN SERTIFIKA B ON
A.pers_adi = B.pers_adi and
(b.ser_no=5 or b.ser_no=6)
...
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
- loribnaczo54
- Üye
- Mesajlar: 60
- Kayıt: 24 Nis 2006 07:42
- Konum: Bahçelievler/İst.
malesef olmadi.
v.a.s aslangeri
yazmis oldugunuz sql i denemistim bana yine HASAN kaydını gonderiyor.
ama kayıtlarda dikkat edersek HASAN kaydına ait 6 no lu sertifika yok. dolayısıyla sadece BIROL, ve AHMET i döndürmesi lazim. or kullanmadan yapmamız gerekiyor sanki. Fakat and kullandığım takdirdede boş dönüyor...
yazmis oldugunuz sql i denemistim bana yine HASAN kaydını gonderiyor.
ama kayıtlarda dikkat edersek HASAN kaydına ait 6 no lu sertifika yok. dolayısıyla sadece BIROL, ve AHMET i döndürmesi lazim. or kullanmadan yapmamız gerekiyor sanki. Fakat and kullandığım takdirdede boş dönüyor...
- loribnaczo54
- Üye
- Mesajlar: 60
- Kayıt: 24 Nis 2006 07:42
- Konum: Bahçelievler/İst.
Or işinize yaramaz çünkü herhangi birinin olduğu durumda çalışır, and de işinize yaramaz çünkü her ikisinin birden olmasına bakar ki siz her sertifika için ayrı satır tutuyorsunuz. Bence bunun için şöyle bir sql işinizi görür. Ama nekadar hızlı olur orasını bilemiyorum.
Kod: Tümünü seç
SELECT * FROM PERSONEL
WHERE per_no IN (SELECT per_no FROM SERTIFIKA
WHERE ser_no = 5)
AND per_no IN (SELECT per_no FROM SERTIFIKA
WHERE ser_no = 6)
- loribnaczo54
- Üye
- Mesajlar: 60
- Kayıt: 24 Nis 2006 07:42
- Konum: Bahçelievler/İst.
tesekkurler...
yardimlariniz icin tesekkurler, naile arkadasimizinki sorunumu çözmüş gibi gözüküyor tekrar tesekkurler.