İlgili tarihte hareket görmeyen personel

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

İlgili tarihte hareket görmeyen personel

Mesaj gönderen denizfatihi »

Merhaba,

Personelin takip edildiği bir tablom var, tablonun şekli 1.tablodaki gibi benim istediğim altındaki 2.tabloda yer alan ilgili tarihte yer almayan personeli sorgu ile alabilmek.
Diğer bir değişle ilgili tarihte hareket görmeyen personeli tespit edebilmek. Bu arada mysql veri tabanı kullanıyorum
Yardımınız ve ilginiz için teşekkürler.

Tablonun Kendisi
Sicil No Tarih
1 01.01.2014
2 01.01.2014
1 02.01.2014
1 03.01.2014
2 04.01.2014
2 05.01.2014
2 06.01.2014

Sorgu sonrası tablo
Sicil No Tarih
2 02.01.2014
2 03.01.2014
1 04.01.2014
1 05.01.2014
1 06.01.2014

Kod: Tümünü seç

SELECT gc.personelid,
p.ad,
p.soyad,
gc.giristarihi,
CASE
WHEN WEEKDAY(gc.giristarihi)=1 then 'Salı'
when WEEKDAY(gc.giristarihi)=2 then 'Çarşamba'
when WEEKDAY(gc.giristarihi)=3 then 'Perşembe'
when WEEKDAY(gc.giristarihi)=4 then 'Cuma'
when WEEKDAY(gc.giristarihi)=5 then 'Cumartesi'
when WEEKDAY(gc.giristarihi)=6 then 'Pazar'
when WEEKDAY(gc.giristarihi)=0 then 'Pazartesi'
END AS Gun
FROM
gc_giriscikis gc
JOIN personel p ON (p.id = gc.personelid)
where p.durum ='Aktif' and p.id not in (SELECT gc.personelid FROM gc_giriscikis gc JOIN personel p ON (p.id = gc.personelid) where p.durum ='Aktif') 
group by 2,1,4,5
Kullanıcı avatarı
dynamo
Üye
Mesajlar: 96
Kayıt: 21 Haz 2005 02:05
Konum: istanbul

Re: İlgili tarihte hareket görmeyen personel

Mesaj gönderen dynamo »

sonucu merak ettim,çözdüyseniz paylaşabilir misiniz?
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: İlgili tarihte hareket görmeyen personel

Mesaj gönderen denizfatihi »

Merhaba,

Aşağıdaki gibi çözüldü.

Kod: Tümünü seç

SELECT p.id, p.ad, p.soyad , CAST(:tarih AS DATE) as giristarihi
FROM personel p
WHERE p.id NOT IN
(SELECT h.pid FROM hareketler h
where
h.giristarihi = :tarih)
Cevapla