Min() Fonksiyonu İle Sorgu Yapma

1 2
14/01/2019, 20:50

ahmet025896

rhabalar.
Accesste min() fonksiyonu ile sorgu yapmak istiyorum. Fakat ne kdar uğraştı isemde sonuç elde edemedim. 
Kapanış tarihi olmayan en küçük sıra nolu dosyayı seçecek bir sorgu yapmak istiyorum.

TABLO


SORGU SONUCU

İnternetten topladığım sorgular ekteki dosyada mevcuttur.

Teşekkürler.
14/01/2019, 22:12

ozguryasin

göndermiş olduğunuz örnekte sorgu 1 direkt işinizi görür fakat NZ ile çevirim yapmaktansa tarihi is null ile süzdürebilirsiniz. aşağıdaki gibi

SELECT İCRA_DOSYALARI.TCKN, İCRA_DOSYALARI.ADI, İCRA_DOSYALARI.SOYADI, İCRA_DOSYALARI.SIRA, İCRA_DOSYALARI.DOSYA_NO, İCRA_DOSYALARI.KAPANIŞTARİHİ
FROM İCRA_DOSYALARI
WHERE (((İCRA_DOSYALARI.[SIRA])=(SELECT MIN(SIRA)
FROM İCRA_DOSYALARI
WHERE  Nz(KAPANIŞTARİHİ)="" )))
GROUP BY İCRA_DOSYALARI.TCKN, İCRA_DOSYALARI.ADI, İCRA_DOSYALARI.SOYADI, İCRA_DOSYALARI.SIRA, İCRA_DOSYALARI.DOSYA_NO, İCRA_DOSYALARI.KAPANIŞTARİHİ
HAVING (((İCRA_DOSYALARI.KAPANIŞTARİHİ) Is Null));


sorgu 2 şu şekilde düzelterek kullanabilirsiniz.

SELECT İCRA_DOSYALARI.TCKN, İCRA_DOSYALARI.ADI, İCRA_DOSYALARI.SOYADI, İCRA_DOSYALARI.SIRA, İCRA_DOSYALARI.DOSYA_NO, İCRA_DOSYALARI.KAPANIŞTARİHİ
FROM İCRA_DOSYALARI
WHERE (((İCRA_DOSYALARI.[SIRA])=(SELECT MIN(SIRA)
FROM İCRA_DOSYALARI
WHERE  Nz(KAPANIŞTARİHİ)="" )))
GROUP BY İCRA_DOSYALARI.TCKN, İCRA_DOSYALARI.ADI, İCRA_DOSYALARI.SOYADI, İCRA_DOSYALARI.SIRA, İCRA_DOSYALARI.DOSYA_NO, İCRA_DOSYALARI.KAPANIŞTARİHİ
HAVING (((İCRA_DOSYALARI.KAPANIŞTARİHİ) Is Null));


aslında sorgu1 sorgunuz işe yarıyar fakat tablonuzdaki kayıtlarda sorun olduğu için sanırım fark edemediniz. sıra no 4 kere 1 tekrar ettiği için en küçük numarada 1 olduğu için 4 tane kayıt getirmekte. sorgu çalışıyor.
15/01/2019, 13:10

ahmet025896

Üstad Arzu isimli personelin sıradaki dosya numarası 2 olduğu için onu getirmiyor. 4 değil 5 sonuç olması gerekiyor.
15/01/2019, 17:46

ozanakkaya

Merhaba,

Yeni bir sorgu oluşturup Sql kaynağına aşağıdaki kodu yazınız.

SELECT * FROM İCRA_DOSYALARI WHERE (((Kimlik) In (SELECT Kimlik FROM İCRA_DOSYALARI INNER JOIN (SELECT Min(SIRA) AS EnAzSIRA, TCKN, KAPANIŞTARİHİ FROM İCRA_DOSYALARI GROUP BY TCKN, KAPANIŞTARİHİ HAVING (((KAPANIŞTARİHİ) Is Null))) AS srg_enazKimlik ON (İCRA_DOSYALARI.SIRA = srg_enazKimlik.EnAzSIRA) AND (İCRA_DOSYALARI.TCKN = srg_enazKimlik.TCKN) GROUP BY Kimlik))) ORDER BY TCKN;

Ayrıca, tablo isimlerine ve tablodaki alan isimlerine dikkat ediniz. Yapılmaması Gereken Ölümcül Hatalar
17/01/2019, 08:21

ahmet025896

(15/01/2019, 17:46)ozanakkaya yazdı: Merhaba,

Yeni bir sorgu oluşturup Sql kaynağına aşağıdaki kodu yazınız.

SELECT * FROM İCRA_DOSYALARI WHERE (((Kimlik) In (SELECT Kimlik FROM İCRA_DOSYALARI INNER JOIN (SELECT Min(SIRA) AS EnAzSIRA, TCKN, KAPANIŞTARİHİ FROM İCRA_DOSYALARI GROUP BY TCKN, KAPANIŞTARİHİ HAVING (((KAPANIŞTARİHİ) Is Null))) AS srg_enazKimlik ON (İCRA_DOSYALARI.SIRA = srg_enazKimlik.EnAzSIRA) AND (İCRA_DOSYALARI.TCKN = srg_enazKimlik.TCKN) GROUP BY Kimlik))) ORDER BY TCKN;

Ayrıca, tablo isimlerine ve tablodaki alan isimlerine dikkat ediniz. Yapılmaması Gereken Ölümcül Hatalar
Üstad çok teşekkür ederim. Elinize ve emeğinize sağlık.
21/01/2019, 20:31

ahmet025896

(15/01/2019, 17:46)ozanakkaya yazdı: Merhaba,

Yeni bir sorgu oluşturup Sql kaynağına aşağıdaki kodu yazınız.

SELECT * FROM İCRA_DOSYALARI WHERE (((Kimlik) In (SELECT Kimlik FROM İCRA_DOSYALARI INNER JOIN (SELECT Min(SIRA) AS EnAzSIRA, TCKN, KAPANIŞTARİHİ FROM İCRA_DOSYALARI GROUP BY TCKN, KAPANIŞTARİHİ HAVING (((KAPANIŞTARİHİ) Is Null))) AS srg_enazKimlik ON (İCRA_DOSYALARI.SIRA = srg_enazKimlik.EnAzSIRA) AND (İCRA_DOSYALARI.TCKN = srg_enazKimlik.TCKN) GROUP BY Kimlik))) ORDER BY TCKN;

Ayrıca, tablo isimlerine ve tablodaki alan isimlerine dikkat ediniz. Yapılmaması Gereken Ölümcül Hatalar
ÜSTAD ŞÖYLE BİR SIKINTIYLA KARŞILAŞTIM.
BİR PERSONELİN AYNI ANDA KESİLEN 2 İCRASI VAR. BİRİ BİTİP KAPANIŞ TARİHİ GİRİLDİĞİ HALDE KESİNTİ LİSTESİNE GETİRİYOR.
ÖNERİNİZ NEDİR?
1 2