iş günü hesaplama

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

iş günü hesaplama

Mesaj gönderen y.kulac »

s.a.
ocak ayı 31 gün,
bir personel 10.01.2011 - 22.01.2011 tarihleri arasında 12 gün rapor aldı.
bu personel ocak ayında 31 - 12 = 18 iş günü çalışacak. hafta içi ve sonuda iş günü sayılıyor.
nası bir sorgu yapmalıyımki, bana şu sonucu vermeli.

bu personel için:
hafta içi iş günü sayısı = 12
hafta sonu iş günü sayısı = 8
toplam iş günü sayısı = 18

yani almış olduğu rapor tarihlerini hesaba katmayacak.

iyi çalışmalar dilerim.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: iş günü hesaplama

Mesaj gönderen orhancc »

Bilgileri veritabanında nasıl tutuyorsun?
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Re: iş günü hesaplama

Mesaj gönderen y.kulac »

Kod: Tümünü seç

rapor_baslama_tarihi (date alan)
rapor_bitis_tarihi (date alan)
rapor_gunu (int alan)
bu işlemi döngüler ile yapabiliyorum. ama 2000 kişiyi döngüye sokmak biraz zaman alıyor. eğer döngüye sokmadan sql kodlarıyla yapabilirsem daha güzel olacak.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: iş günü hesaplama

Mesaj gönderen orhancc »

Bununla aydaki gün sayısını bulursun ve bundan da raporlu gün sayısını çıkarırsın.

Kod: Tümünü seç

SELECT DAY(DATEADD(d, -DAY(DATEADD(m,1,@Date)),DATEADD(m,1,@Date))) 
Ya da datediff fonksiyonu ile iki tarih arasındaki gün sayısını bulup işlemini yaparsın
En son orhancc tarafından 06 Şub 2011 11:01 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Re: iş günü hesaplama

Mesaj gönderen y.kulac »

deneyeceğim.
teşekkür ederim.
Cevapla