- Katılım
- 23 Eylül 2005
- Mesajlar
- 37
- Excel Vers. ve Dili
- 2003 TR
Selamlar,
Elimde personel giriş ve çıkış sırasında barkod da okutuğu iki ayrı tablo var.Yani giriş ve çıkış tablosu. Bu tablolar Güvenlik girişde Personel giriş kartları okutularak elde ediliyor. Bu tabloları linkleyerek access 'e bağladım aşağıdaki Query çalıştırarak kişinin giriş ve çıkış bilgisi ve çalışma saatini oluşturdum.Yardım istediğim iki konu var
1. Aşağıdada görüleceği üzere AA isimli personel 3 kez ayrı günlerde giriş yapmasına rağmen . mükerer şekilde çıkış ve giriş görülmektedir.Mükererliği nasıl engelleyebilirim,
2. Bu Queride 09:30 çalışma saatini geçen kişilere nasıl mesai yazabilirim,
Şimdiden çok teşekkür ederim,
Örnek Tablo
SİCİL NO ADI SOYADI GİRİŞ SAATİ
11000 AA 1 Mayıs 2006 8:30
Örnek query ve Kodu
No ADI GİRİŞ SAATİ ÇIKIŞ SAATİ CALISMA_SAATİ
11 AA 1 Mayıs 2006 8:30 1 Mayıs 2006 18:00 09:30
11 AA 1 Mayıs 2006 8:30 2 Mayıs 2006 18:14 09:44
11 AA 1 Mayıs 2006 8:30 3 Mayıs 2006 19:43 11:13
11 AA 2 Mayıs 2006 8:12 1 Mayıs 2006 18:00 14:12
11 AA 2 Mayıs 2006 8:12 2 Mayıs 2006 18:14 10:02
11 AA 2 Mayıs 2006 8:12 3 Mayıs 2006 19:43 11:31
11 AA 3 Mayıs 2006 8:12 1 Mayıs 2006 18:00 14:12
11 AA 3 Mayıs 2006 8:12 2 Mayıs 2006 18:14 13:58
11 AA 3 Mayıs 2006 8:12 3 Mayıs 2006 19:43 11:31
SELECT GİRİŞ.[SİCİL NO], GİRİŞ.[ADI SOYADI], GİRİŞ.[GİRİŞ SAATİ], ÇIKIŞ.[ÇIKIŞ SAATİ], Format$([ÇIKIŞ SAATİ]-[GİRİŞ SAATİ],'Short Time') AS CALISMA_SAATİ
FROM GİRİŞ LEFT JOIN ÇIKIŞ ON GİRİŞ.[SİCİL NO] = ÇIKIŞ.[SİCİL NO]
GROUP BY GİRİŞ.[SİCİL NO], GİRİŞ.[ADI SOYADI], GİRİŞ.[GİRİŞ SAATİ], ÇIKIŞ.[ÇIKIŞ SAATİ], Format$([ÇIKIŞ SAATİ]-[GİRİŞ SAATİ],'Short Time')
HAVING (((GİRİŞ.[SİCİL NO])>"0"))
ORDER BY GİRİŞ.[SİCİL NO];
Elimde personel giriş ve çıkış sırasında barkod da okutuğu iki ayrı tablo var.Yani giriş ve çıkış tablosu. Bu tablolar Güvenlik girişde Personel giriş kartları okutularak elde ediliyor. Bu tabloları linkleyerek access 'e bağladım aşağıdaki Query çalıştırarak kişinin giriş ve çıkış bilgisi ve çalışma saatini oluşturdum.Yardım istediğim iki konu var
1. Aşağıdada görüleceği üzere AA isimli personel 3 kez ayrı günlerde giriş yapmasına rağmen . mükerer şekilde çıkış ve giriş görülmektedir.Mükererliği nasıl engelleyebilirim,
2. Bu Queride 09:30 çalışma saatini geçen kişilere nasıl mesai yazabilirim,
Şimdiden çok teşekkür ederim,
Örnek Tablo
SİCİL NO ADI SOYADI GİRİŞ SAATİ
11000 AA 1 Mayıs 2006 8:30
Örnek query ve Kodu
No ADI GİRİŞ SAATİ ÇIKIŞ SAATİ CALISMA_SAATİ
11 AA 1 Mayıs 2006 8:30 1 Mayıs 2006 18:00 09:30
11 AA 1 Mayıs 2006 8:30 2 Mayıs 2006 18:14 09:44
11 AA 1 Mayıs 2006 8:30 3 Mayıs 2006 19:43 11:13
11 AA 2 Mayıs 2006 8:12 1 Mayıs 2006 18:00 14:12
11 AA 2 Mayıs 2006 8:12 2 Mayıs 2006 18:14 10:02
11 AA 2 Mayıs 2006 8:12 3 Mayıs 2006 19:43 11:31
11 AA 3 Mayıs 2006 8:12 1 Mayıs 2006 18:00 14:12
11 AA 3 Mayıs 2006 8:12 2 Mayıs 2006 18:14 13:58
11 AA 3 Mayıs 2006 8:12 3 Mayıs 2006 19:43 11:31
SELECT GİRİŞ.[SİCİL NO], GİRİŞ.[ADI SOYADI], GİRİŞ.[GİRİŞ SAATİ], ÇIKIŞ.[ÇIKIŞ SAATİ], Format$([ÇIKIŞ SAATİ]-[GİRİŞ SAATİ],'Short Time') AS CALISMA_SAATİ
FROM GİRİŞ LEFT JOIN ÇIKIŞ ON GİRİŞ.[SİCİL NO] = ÇIKIŞ.[SİCİL NO]
GROUP BY GİRİŞ.[SİCİL NO], GİRİŞ.[ADI SOYADI], GİRİŞ.[GİRİŞ SAATİ], ÇIKIŞ.[ÇIKIŞ SAATİ], Format$([ÇIKIŞ SAATİ]-[GİRİŞ SAATİ],'Short Time')
HAVING (((GİRİŞ.[SİCİL NO])>"0"))
ORDER BY GİRİŞ.[SİCİL NO];