Conversion to 7 day week.
I'm in the process of converting 5 day week to 7 day week. I have modified the form to reflect 7 days and it appears to work, however in returning the dataset it returns 16 instances of project, instead of 4. For instance it would have 4 rows for Vacation, 4 rows for Sick Days, etc. Anyone have any ideas?
Here is my modified stored procedure.
ALTER PROCEDURE usp_SelectTimeSheet
(
@UserID UNIQUEIDENTIFIER,
@WeekEndingDate DATETIME
)
AS
-- Select the TimeSheetID, Submitted, ProjectID and ProjectName
SELECT TimeSheets.TimeSheetID, Submitted, Projects.ProjectID, ProjectName,
-- Select the TimeSheetItemID and Hours for Sunday
Sunday.TimeSheetItemID AS SundayTimeSheetItemID,
Sunday.Hours AS SundayHours,
-- Select the TimeSheetItemID and Hours for Monday
Monday.TimeSheetItemID AS MondayTimeSheetItemID,
Monday.Hours AS MondayHours,
-- Select the TimeSheetItemID and Hours for Tuesday
Tuesday.TimeSheetItemID AS TuesdayTimeSheetItemID,
Tuesday.Hours AS TuesdayHours,
-- Select the TimeSheetItemID and Hours for Wednesday
Wednesday.TimeSheetItemID AS WednesdayTimeSheetItemID,
Wednesday.Hours AS WednesdayHours,
-- Select the TimeSheetItemID and Hours for Thursday
Thursday.TimeSheetItemID AS ThursdayTimeSheetItemID,
Thursday.Hours AS ThursdayHours,
-- Select the TimeSheetItemID and Hours for Friday
Friday.TimeSheetItemID AS FridayTimeSheetItemID,
Friday.Hours AS FridayHours,
-- Select the TimeSheetItemID and Hours for Saturday
Saturday.TimeSheetItemID AS SaturdayTimeSheetItemID,
Saturday.Hours AS SaturdayHours
-- TimeSheets is the main table
FROM TimeSheets
-- Join TimeSheetItems table for Sunday's data
LEFT OUTER JOIN TimeSheetItems Sunday ON
TimeSheets.TimeSheetID = Sunday.TimeSheetID
AND Sunday.TimeSheetDate = DATEADD(day,-6,@WeekEndingDate)
-- Join Projects table for Project names
LEFT OUTER JOIN Projects ON
Sunday.ProjectID = Projects.ProjectID
-- Join TimeSheetItems table for Monday's data
LEFT OUTER JOIN TimeSheetItems Monday ON
TimeSheets.TimeSheetID = Monday.TimeSheetID
AND Monday.TimeSheetDate = DATEADD(day,-5,@WeekEndingDate)
-- Join Projects table for Project names
--LEFT OUTER JOIN Projects ON
-- Monday.ProjectID = Sunday.ProjectID
-- Join TimeSheetItems table for Tuesday's data
LEFT OUTER JOIN TimeSheetItems Tuesday ON
TimeSheets.TimeSheetID = Tuesday.TimeSheetID
AND Tuesday.ProjectID = Monday.ProjectID
AND Tuesday.TimeSheetDate = DATEADD(day,-4,@WeekEndingDate)
-- Join TimeSheetItems table for Wednesday's data
LEFT OUTER JOIN TimeSheetItems Wednesday ON
TimeSheets.TimeSheetID = Wednesday.TimeSheetID
AND Wednesday.ProjectID = Monday.ProjectID
AND Wednesday.TimeSheetDate = DATEADD(day,-3,@WeekEndingDate)
-- Join TimeSheetItems table for Thursday's data
LEFT OUTER JOIN TimeSheetItems Thursday
ON TimeSheets.TimeSheetID = Thursday.TimeSheetID
AND Thursday.ProjectID = Monday.ProjectID
AND Thursday.TimeSheetDate = DATEADD(day,-2,@WeekEndingDate)
-- Join TimeSheetItems table for Friday's data
LEFT OUTER JOIN TimeSheetItems Friday ON
TimeSheets.TimeSheetID = Friday.TimeSheetID
AND Friday.ProjectID = Monday.ProjectID
AND Friday.TimeSheetDate = DATEADD(day,-1,@WeekEndingDate)
-- Join TimeSheetItems table for Saturday's data
LEFT OUTER JOIN TimeSheetItems Saturday ON
TimeSheets.TimeSheetID = Saturday.TimeSheetID
AND Saturday.ProjectID = Monday.ProjectID
AND Saturday.TimeSheetDate = @WeekEndingDate
-- Search criteria is the WeekEndingDate and UserID
WHERE WeekEndingDate = @WeekEndingDate
AND UserID = @UserID
-- Order the results by the SequenceNumber of the projects
ORDER BY SequenceNumber
RETURN
|