Skip to main content

AccessTr.neT


Çalışanların Kronik Hastalıklarına Göre İstatistik Çıkarmak

Çalışanların Kronik Hastalıklarına Göre İstatistik Çıkarmak

#3
(27/03/2020, 15:21)berduş yazdı: bence tablo yapınızı değiştirip hastalık kısmı için ayrı tablo oluşturmalısınız yada  her defasında geçi bir tablo oluşturup orada hesaplama yapmalısınız
personel tablosu, hastalık adı tablosu ve personel hastalık tablosu oluşturup ilişkilendirmeliisiniz
bende düşündüm ama maalesef elimde hazır halde bu tablo var dediğim gibi yılların birikimi olarak oluşturulmuş bir tablo ve çalışan sayısı 5000 e yakın

sn. @feraz ın yardımıyla çoğu bitmiş durumda sadece tarih filtrelemede isabetli bir Sql yazmaya kaldı
bu gibi durumlarda sn. @berduş berduşun dediği gibi id leri olan bir kronik hastalık tablosu olsa güzel olur tablo ilişkilendirip sadece id lerini personel tablosuna eklemek yeterli olmalı
hem eksoz gibi kelimelerin 10 farklı şekilde girilmesi önlenmiş olur hemde daha az yer kaplamış olur
ama bunun da sıkıntısı kronik tablosuna bir şey olsa tüm kronik hastalıklar bilgisi personel tablosunda çöpe dönüşecek
o yüzden hali hazırda bilgileri girilmiş bir tabloda olunca bunu kullanmak zorundayım
her çalışanın  ilk ve son tarihe göre 6 ihtimalden birine dahil

1.ihtimal :başlama ve bitiş tarihi ilk ve son tarihden önce  vb şekilde 
diğerleride şekilden daha iyi anlaşılır

[Resim: do.php?img=9959]
bizim için sayısını bulmamız gerekenler 2,3,4,5. ihtimale sahip olanlar
yani bir gün bile olsa ilk ve son tarih arasında çalışmış olanların sayısını bulmamız gerekir değil mi 
şimdi gelelim Sql cümlemizi yazmaya 
strSQL = "SELECT Tablo1.id, Tablo1.isimler,Tablo1.kronik, Tablo1.firma, Tablo1.bastarih, Tablo1.bittarih FROM Tablo1" & _
        " WHERE Tablo1.firma='" & [Metin13] & "'" & _
        " AND not isnull(kronik)" & _
        " AND Tablo1.bastarih >= #" & Format([ilktarih], "dd-mm-yyyy") & "#" & _
        " AND Tablo1.bastarih <= #" & Format([sontarih], "dd-mm-yyyy") & "#" & _
        " AND Tablo1.bittarih >= #" & Format([ilktarih], "dd-mm-yyyy") & "#" & _
        " AND Tablo1.bittarih <= #" & Format([sontarih], "dd-mm-yyyy") & "#;"
 bu şekilde yazarsak 2,3,4,5. ihtimalleri kapsar mı
eğer 1. ve 6 ihtimalleri içermeyenleri bulursak sanırım sorun çözülecek yani 
1. ihtimal için   (bastarih < ilktarih)  And  (bittarih < ilktarih)
6. ihtimal için   (bastarih > sontarih)  And  (bittarih > sontarih)
bu iki ihtimali içermeyen Sql cümlesi nasıl olmalı
şöyle desek nasıl olur 
bittarih >= bastarih olmak şartıyla
(bittarih >= ilktarih)  And (bastarih <= sontarih)
bunu Sql cümlesi olarak ifade edersek
strSQL = "SELECT Tablo1.id, Tablo1.isimler,Tablo1.kronik, Tablo1.firma, Tablo1.bastarih, Tablo1.bittarih FROM Tablo1" & _
        " WHERE Tablo1.firma='" & [Metin13] & "'" & _
        " AND not isnull(kronik)" & _
        " AND cDate(Tablo1.bastarih) <= cdate(Tablo1.bittarih)" & _
        " AND Tablo1.bastarih <= #" & Format([sontarih], "dd-mm-yyyy") & "#" & _
        " AND Tablo1.bittarih >= #" & Format([ilktarih], "dd-mm-yyyy") & "#;"
@benbendedeilem
Son Düzenleme: 27/03/2020, 15:26, Düzenleyen: accessman.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Cvp: Çalışanların Kronik Hastalıklarına Göre İstatistik Çıkarmak - Yazar: accessman - 27/03/2020, 15:25