Skip to main content

AccessTr.neT


Öğrencilerin Aldığı Fakat Telim Etmediği Kitapları Bulma Sorgusu

Öğrencilerin Aldığı Fakat Telim Etmediği Kitapları Bulma Sorgusu

Çözüldü #1
numara   durum     kitap adı
1           Aldı     kitap 2
2           Aldı     kitap 3
1           Teslim       kitap2


örnek okunan kitaplar tablomdaki veriler.
2 nolu öğrenci kitap 3 adlı kitabı almış fakat teslim etmemiş bunu sorgu kullanarak nasıl bulabilirim.
tablolarımda herhangi bir değişiklik yapmadan.
.rar ArMiKutuphane.rar (Dosya Boyutu: 38,76 KB | İndirme Sayısı: 6)
mustinba, 11-01-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
Merhaba Sayın @mustinba

Tablolarınızdaki kayıtlara göre kitap teslim etmeyen öğrenciler sanırım "aldı" yazanlar.
Kitap alan öğrenci numarası adı soyadı sınıfı şubesi hangi verileri istediğinizi bilmiyorum ona istinaden mantıklı olabiliecek değerleri sorgunuza ilave ediyorum, siz istemediklerinizi içinden çıkartırsınız.
Sorgunuz için aşağıdaki kodu kullanabilirsiniz:
SQL Code
SELECT Ogrenciler.Numara, Ogrenciler.Ad, Ogrenciler.Soyad, Ogrenciler.Sinif, Ogrenciler.Sube, OkunanKitaplar.tarih, OkunanKitaplar.ogretmen, OkunanKitaplar.num, OkunanKitaplar.durum
FROM Ogrenciler INNER JOIN OkunanKitaplar ON Ogrenciler.Numara = OkunanKitaplar.num
WHERE (((OkunanKitaplar.durum)="aldı"));
Cevapla
#3
(17/01/2021 22:00)atoykan Adlı Kullanıcıdan Alıntı: Merhaba Sayın @mustinba

Tablolarınızdaki kayıtlara göre kitap teslim etmeyen öğrenciler sanırım "aldı" yazanlar.
Kitap alan öğrenci numarası adı soyadı sınıfı şubesi hangi verileri istediğinizi bilmiyorum ona istinaden mantıklı olabiliecek değerleri sorgunuza ilave ediyorum, siz istemediklerinizi içinden çıkartırsınız.
Sorgunuz için aşağıdaki kodu kullanabilirsiniz:
SQL Code
SELECT Ogrenciler.Numara, Ogrenciler.Ad, Ogrenciler.Soyad, Ogrenciler.Sinif, Ogrenciler.Sube, OkunanKitaplar.tarih, OkunanKitaplar.ogretmen, OkunanKitaplar.num, OkunanKitaplar.durum
FROM Ogrenciler INNER JOIN OkunanKitaplar ON Ogrenciler.Numara = OkunanKitaplar.num
WHERE (((OkunanKitaplar.durum)="aldı"));


bu sorguda Kitap alanlar listeleniyor.

örneğimde

1 nolu öğrenci kitap 2 yi almış ve teslim etmiş (sorguda bu olmasın)
ancak 2 nolu öğrenci kitap 3 ü almış fakat teslim etmemiş(bunları bulmak istiyorum)
mustinba, 11-01-2010 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 17/01/2021, 22:59, Düzenleyen: mustinba.
Cevapla
#4
aşağıdaki kodu dener misiniz?
Ama kitaplar için yeni bir tablo oluşturmanız daha uygun olur
mesela kayıtların birinde Kitap2 iken diğerinde Kitap 2 bir boşluk bile bozuyor
SQL Code
SELECT OkunanKitaplar.num, OkunanKitaplar.kitap, Last(OkunanKitaplar.durum) AS Sondurum
FROM OkunanKitaplar
GROUP BY OkunanKitaplar.num, OkunanKitaplar.kitap
HAVING (((Last(OkunanKitaplar.durum))="aldı"));
Cevapla
#5
(17/01/2021 23:04)berduş Adlı Kullanıcıdan Alıntı: aşağıdaki kodu dener misiniz?
Ama kitaplar için yeni bir tablo oluşturmanız daha uygun olur
mesela kayıtların birinde Kitap2 iken diğerinde Kitap 2 bir boşluk bile bozuyor
SQL Code
SELECT OkunanKitaplar.num, OkunanKitaplar.kitap, Last(OkunanKitaplar.durum) AS Sondurum
FROM OkunanKitaplar
GROUP BY OkunanKitaplar.num, OkunanKitaplar.kitap
HAVING (((Last(OkunanKitaplar.durum))="aldı"));

teşekkürler dediğiniz gibi ysptım oldu.
İyi çalışmalar.
mustinba, 11-01-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#6
bu arada ufak bir öneri OkunanKitaplar tablonuzun yapısını değiştirmeniz gerek bence
Aldı/Teslim alanı yerine o alanı tarih türünde  IadeTrh olarak değiştirin böylece alma ve iade tarihinin olduğu tek kayıt olur, IadeTrh alanı boşsa kitap getirilmemiş demektir
.rar ArMiKutuphane_hy.rar (Dosya Boyutu: 16,05 KB | İndirme Sayısı: 5)
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task