Forum
Arkadaşlar merhaba,
Kartlı geçiş sistemi için cihazdan gelen verilerim sqle şu şekilde kayıt altına alıyorum. Personel_ID personel tablosunda TYPE = 0 ise giriş 1 ise çıkış oluyor bu şekilde databasede kayıt var..
Yapmak istediğim örneğin şu personel id 7 olan kişinin ÖNEĞİN BİR AYLK SÜRESİNİ SATIR SATIR EKRANDAKİ ŞEKİLE GÖRE GRUPLAYIP GÖSTERMESİNİ İSTİYORUM YANİ GİRİŞ ÇIKIŞ TABLOSUNDAKİ VERİLERİMİ BU ŞEKLE ÇEVİRMEK İSTİYORUM NASIL YAPABİLİRİM BU SORGUYU
PERSONEL ADI SOYADI | TARIH | GİRİŞ SAATİ | ÇIKIŞ SAATİ | ||
UFUK ŞAHİN | 03.03.2016 | 08:00:01 | 18:00:00 | ||
UFUK ŞAHİN | 04.03.2016 | 07:59:00 | 19:00:03 | ||
UFUK ŞAHİN | 05.03.2016 | 07:56:05 | 19:05:02 | ||
UFUK ŞAHİN | 06.03.2016 | 07:58:52 | 21:05:02 |
PERSONEL_ID | GATEWAY_NUMBER | TYPE | TARIH_SAAT | |
7 | 1 | 0 | 2016-03-03 08:00:01 | |
7 | 2 | 1 | 2016-03-03 18:00:00 | |
8 | 1 | 0 | 2016-03-03 07:50:01 | |
8 | 2 | 1 | 2016-03-03 18:20:05 | |
7 | 0 | 2016-04-03 07:59:00 | ||
7 | 2 | 1 | 2016-04-03 19:00:03 |
GIRIS VE CIKIS SAATINI AYNI TABLODAN ALIP YAN YANA NASIL YAZABİLİRİM YUKARDAKİ GİBİ
Merhaba, ilgili personelin kayıtlarından aynı gün içerisinde en büyük değerli tarih bilgisi personelin çıkış saati, en küçük değerli tarih bilgisi ise işe giriş saatini veriyor. Buna göre bir gruplama yapılarak sorun çözülebilir gibi görünüyor.
Benzer veriler üzerinde yaptığım denemede aşağıdaki sql sorgusu işinize yarayacak sonuç üretiyor sanırım. Yinede üzerinde gerekli değişiklikler yapılabilir.
SELECT
personel_id,
MAX(tarih) AS cikis_tarihi,
MIN(tarih) AS giris_tarihi
FROM
TABLO
WHERE
profil_id = 7 AND tarih LIKE '2016-02%'
GROUP BY MONTH(tarih) , DAY(tarih);
Kolay gelsin.