İK verisi neden farklı?
Satış verisinde her satır bir olaydır (sipariş). İK verisinde ise çoğu bilgi bir zaman aralığında geçerlidir: bir kişi bir tarihte işe girer, belli bir tarihe kadar bir görevde kalır, maaşı belli bir tarihten itibaren değişir. Bu yüzden İK sorularının neredeyse hepsi şu kalıba dayanır: “X tarihinde durum neydi?”
| Tablo | Bir satır | Zaman mantığı |
|---|---|---|
| ik_employees | bir çalışan (ayrılanlar dahil) | hire_date … term_date |
| ik_job_history | bir kişinin bir görevi | start_date … end_date |
| ik_salaries | bir maaş değişikliği | effective_date’ten bir sonraki kayda kadar |
| ik_reviews | bir kişinin bir yılki değerlendirmesi | yıl |
| ik_leaves, ik_training | bir olay | tarih |
| ik_candidates | bir aday başvurusu | son aşama |
“O tarihte aktif” koşulu
Bir çalışan t tarihinde aktiftir, eğer o tarihte ya da önce işe girmiş ve o tarihten önce ayrılmamışsa:
SELECT COUNT(*) AS aktif FROM ik_employees e WHERE e.hire_date <= '2024-12-31' AND (e.term_date IS NULL OR e.term_date > '2024-12-31');
term_date IS NULL “hâlâ çalışıyor” demektir. Bu koşulu unutmak ya da term_date > t yazıp NULL’ları kaybetmek İK raporlarındaki en yaygın hatadır.