Home All Groups Group Topic Archive Search About

Calculating employees weekly hours

Author
3 Jun 2005 6:01 AM
ninel
The pay period begins on a sunday and ends on a saturday. Some employees work on the weekends, some don't. How can I calculate by week how many hours an employee has worked? Date                             EmpNumber           Hours 20050522(sun)       123                7.5 20050523(mon)       123                8 20050524(tues)      123                8.5 20050523(mon)       246                9 20050524(tues)      246                6.5 20050526(thur)      246                7.5 20050529(sun)       345                8 20050530(mon)       345                7 20050531(tues)      345                6.75 I need the outcome to look like this: PayPeriodWeek     EmpNumber     Hours 20050522            123                  24 20050522            246                  23 20050529            345                  21.75

Author
3 Jun 2005 6:31 AM
Leo Leong
Hi ninel,

try this:
**************************************************
create table test_data(
    MyDate datetime,
    EmpNumber int,
    Hours decimal(9,2)
)
go
insert into test_data (MyDate, EmpNumber, Hours)
values ('22 May 2005', 123, 7.5)

insert into test_data (MyDate, EmpNumber, Hours)
values ('23 May 2005', 123, 8)

insert into test_data (MyDate, EmpNumber, Hours)
values ('24 May 2005', 123, 8.5)

insert into test_data (MyDate, EmpNumber, Hours)
values ('23 May 2005', 246, 9)

insert into test_data (MyDate, EmpNumber, Hours)
values ('24 May 2005', 246, 6.5)

insert into test_data (MyDate, EmpNumber, Hours)
values ('26 May 2005', 246, 7.5)

insert into test_data (MyDate, EmpNumber, Hours)
values ('29 May 2005', 345, 8)

insert into test_data (MyDate, EmpNumber, Hours)
values ('30 May 2005', 345, 7)

insert into test_data (MyDate, EmpNumber, Hours)
values ('31 May 2005', 345, 6.75)
go
select * from test_data
go
select min(MyDate) as min_MyDate, EmpNumber, datepart(ww, MyDate), sum(Hours)
from     test_data
group by EmpNumber, datepart(ww, MyDate)
**************************************************

SQL Server has Date Function to get work week of a year.
please refer BOL to check out DatePart function.
However, if your first day of week is different, you may need to use other
way to calculate.

Leo Leong


Show quoteHide quote
"ninel" wrote:

> The pay period begins on a sunday and ends on a saturday. Some
> employees work on the weekends, some don't.
>
> How can I calculate by week how many hours an employee has worked?
>
> Date                             EmpNumber           Hours
> 20050522(sun)       123                7.5
> 20050523(mon)       123                8
> 20050524(tues)      123                8.5
> 20050523(mon)       246                9
> 20050524(tues)      246                6.5
> 20050526(thur)      246                7.5
> 20050529(sun)       345                8
> 20050530(mon)       345                7
> 20050531(tues)      345                6.75
>
> I need the outcome to look like this:
> PayPeriodWeek     EmpNumber     Hours
> 20050522            123                  24
> 20050522            246                  23
> 20050529            345                  21.75
>
>

Bookmark and Share