AccessTr.neT

Tam Versiyon: Öğrencilerin Aldığı Fakat Telim Etmediği Kitapları Bulma Sorgusu
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
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.
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:
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ı"));
(17/01/2021, 22:00)atoykan yazdı: [ -> ]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:
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)
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
SELECT OkunanKitaplar.num, OkunanKitaplar.kitap, Last(OkunanKitaplar.durum) AS Sondurum
FROM OkunanKitaplar
GROUP BY OkunanKitaplar.num, OkunanKitaplar.kitap
HAVING (((Last(OkunanKitaplar.durum))="aldı"));
(17/01/2021, 23:04)berduş yazdı: [ -> ]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
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.
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
Sayfalar: 1 2