Don't worry, this isn't about parameters. I've searched the forum and can't find the answer to this (but loads on crosstab perameters!).
I have a table:
DateWorked | StaffPIN | StartTime | FinishTime | ShiftType
------------|-------- -|-------- --|-----------|----------
.01/11/07....|..1234.....|...07:00....|....19:00....|.....Day
.01/11/07....|..5678.....|...19:00....|....07:00....|.....Night
.02/11/07....|..1234.....|...07:00....|....19:00....|.....Day
.02/11/07....|..5678.....|...07:00....|....07:00....|.....Sick
I want to turn this in to a report with the format:
DateWorked | 1234 | 5678 |
-------------|------|------|
..01/11/07....|..12...|...12...|
..02/11/07....|..12...|....S...|
Where the values (12, S) are the number of hours worked for that staff member on that day or a summary of what they did.
I have created a Function:
WorkedHours(DateWorked, StaffPIN)
This returns the number of hours worked by a saff member on a perticular day as an int.
I know I need to use a crosstab. My 1st attempt had [DateWorked] as the row heading, [StaffPIN] as column heading and the expression "expr: WorkedHours([DateWorked],[StaffPIN])" as the value with 'expression' as the crosstab property. It kept throwing the error "Data type mismatch in criteria expression". There are no Null fields in the table it's performing the query on.
For my 2nd attempt I created a simple query that had the fields I needed for the crosstab plus the extra field "Hours: WorkedHours([DateWorked],[StaffPIN])". I could then use a crosstab query on this simple query to create something aproaching the table I need. This new crosstab had [DateWorked] as the row heading, [StaffPIN] as the column heading, [Hours] as the value with 'Last' as the crosstab property.
1. Do I have to use a seperate query to calculate the WorkedHours() or can I do it in the crosstab?
2. I don't want the crosstab to average, sum or count etc. the data. I just want it to display the hours worked but I have to choose something in the crosstab properties. What do I select? (I selected 'Last' and it seems to work but I'm not sure why)
3. How do I get it to display something other than the number of hours worked for certain shift types? (I have all the shift types in a table with a flag for the ones that need to be calculated, the absence of this flag would mean it needs to show a summary eg 'S' for a sick shift, 'H' for a holiday shift)
I know I've asked for a lot of help recently, I really appreciate everyone's help.
I have a table:
DateWorked | StaffPIN | StartTime | FinishTime | ShiftType
------------|-------- -|-------- --|-----------|----------
.01/11/07....|..1234.....|...07:00....|....19:00....|.....Day
.01/11/07....|..5678.....|...19:00....|....07:00....|.....Night
.02/11/07....|..1234.....|...07:00....|....19:00....|.....Day
.02/11/07....|..5678.....|...07:00....|....07:00....|.....Sick
I want to turn this in to a report with the format:
DateWorked | 1234 | 5678 |
-------------|------|------|
..01/11/07....|..12...|...12...|
..02/11/07....|..12...|....S...|
Where the values (12, S) are the number of hours worked for that staff member on that day or a summary of what they did.
I have created a Function:
WorkedHours(DateWorked, StaffPIN)
This returns the number of hours worked by a saff member on a perticular day as an int.
I know I need to use a crosstab. My 1st attempt had [DateWorked] as the row heading, [StaffPIN] as column heading and the expression "expr: WorkedHours([DateWorked],[StaffPIN])" as the value with 'expression' as the crosstab property. It kept throwing the error "Data type mismatch in criteria expression". There are no Null fields in the table it's performing the query on.
For my 2nd attempt I created a simple query that had the fields I needed for the crosstab plus the extra field "Hours: WorkedHours([DateWorked],[StaffPIN])". I could then use a crosstab query on this simple query to create something aproaching the table I need. This new crosstab had [DateWorked] as the row heading, [StaffPIN] as the column heading, [Hours] as the value with 'Last' as the crosstab property.
1. Do I have to use a seperate query to calculate the WorkedHours() or can I do it in the crosstab?
2. I don't want the crosstab to average, sum or count etc. the data. I just want it to display the hours worked but I have to choose something in the crosstab properties. What do I select? (I selected 'Last' and it seems to work but I'm not sure why)
3. How do I get it to display something other than the number of hours worked for certain shift types? (I have all the shift types in a table with a flag for the ones that need to be calculated, the absence of this flag would mean it needs to show a summary eg 'S' for a sick shift, 'H' for a holiday shift)
I know I've asked for a lot of help recently, I really appreciate everyone's help.
