iş yerine giriş saatini bulan sql cümlesi

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

iş yerine giriş saatini bulan sql cümlesi

Mesaj gönderen kazimates »

merhabalar,

id, personel_id, tarih, giris_saat
1 20 2014-05-26 08:04:00
2 116 2014-05-26 11:00:00
3 117 2014-05-26 11:00:01
4 116 2014-05-26 12:20:00
5 117 2014-05-26 12:21:00
6 20 2014-05-27 08:03:00
7 116 2014-05-27 08:07:00
8 117 2014-05-27 09:00:01
9 116 2014-05-27 09:20:00
10 117 2014-05-27 10:21:00

şeklinde recordlar var. Nasıl bir sql cümlesi ile her bir personel_id nin hangi tarihde işe ilk katça geldiğini gösterebilirim?
şimdiden teşekkür ederim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: iş yerine giriş saatini bulan sql cümlesi

Mesaj gönderen mussimsek »

select personel_id, tarih, min(giris_saat)
from tablo_adı
group by personel_id, tarih

Kolay gelsin.
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

Re: iş yerine giriş saatini bulan sql cümlesi

Mesaj gönderen kazimates »

hım sanırım sizin kod daha kısaymış.
ben ise şu şekilde yapmıştım.

Kod: Tümünü seç

SELECT id, personel_id, tarih, min( giris_saat )
FROM `personel_giriscikis`
WHERE date_format( tarih, '%Y %m %d' ) = date_format( '2014-05-27', '%Y %m %d' )
GROUP BY personel_id
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

Re: iş yerine giriş saatini bulan sql cümlesi

Mesaj gönderen kazimates »

personel_giriscikis
id, personel_id, tarih, giris_saat
1 20 2014-05-26 08:04:00
2 116 2014-05-26 11:00:00
3 117 2014-05-26 11:00:01
4 116 2014-05-26 12:20:00
5 117 2014-05-26 12:21:00
6 20 2014-05-27 08:03:00
7 116 2014-05-27 08:07:00
8 117 2014-05-27 09:00:01
9 116 2014-05-27 09:20:00
10 117 2014-05-27 10:21:00

personel_kartlari
kart_no, adi, soyadi, departman_kod
20 ali ak 1
116 kazim ates 2
117 ayşe beyaz 2


kodlar_departman
kod, aciklama
1 satis departmanı
2 muhasebe departmanı
3 teknik departman


bu hesaba göre yukarıda verilenler ışığında ve tabni verdiğiniz sql koduna göre bir düzenleme ile çıkan sonucun yanında nasıl edipde

personel_kartlari.personel_id, personel_kartlari.adi, personel_kartlari.soyadı, kodlar_departman.aciklama, personel_giriscikis.tarih, personel_giriscikis.girisaat

şeklinde output vermesini sağlayabiliriz?

şimdiden teşekkürler...
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

Re: iş yerine giriş saatini bulan sql cümlesi

Mesaj gönderen kazimates »

Kod: Tümünü seç

SELECT personel.kartno, personel.adi, personel.soyadi, kodlar_departman.aciklama, saat.tarih, min( saat.giris_saat )
FROM `personel_giriscikis` AS saat, `personel_kartlari` AS personel
INNER JOIN kodlar_departman ON personel.departman_kod = kodlar_departman.kod
WHERE saat.personel_id = personel.kartno
AND date_format( saat.tarih, '%Y %m %d' ) = date_format( '2014-05-27', '%Y %m %d' )
GROUP BY personel_id
sorunu yukarıdaki kodla çözdüm. herkese teşekkürler.
tayipk
Üye
Mesajlar: 284
Kayıt: 27 Kas 2013 11:32

Re: iş yerine giriş saatini bulan sql cümlesi

Mesaj gönderen tayipk »

Nasıl bir sql cümlesi ile her bir personel_id nin hangi tarihde işe ilk katça geldiğini gösterebilirim?
kelimesine istinaden sizin kodlarınıza ek olarak Order By komutu ile tarih ve saat sıralaması yapıp en küçük olanı bulmanız gerekecektir.
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: iş yerine giriş saatini bulan sql cümlesi

Mesaj gönderen conari »

Kod: Tümünü seç

SELECT TOP 1 Girsaat from .... ORDER BY Girsaat
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
denizfatihi
Üye
Mesajlar: 254
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: iş yerine giriş saatini bulan sql cümlesi

Mesaj gönderen denizfatihi »

Merhaba,

Konu yine PKDS ile ilgili olduğu için yeni bir başlık açmak istemedim.
Benim sorum da şu mysql veri tabanı kullanıyorum 2 adet tablom var 1.Tablo giriş-çıkış hareketlerini tuttuğum tablo 2.tabloda da personel bilgileri mevcut
Sorum aşağıdaki gibi sql ile ilgili tarihte işe gelmeyenleri bulup tespit etmek. Değer boş geliyor.

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
Cevapla