Я написал SQL-запрос, который приводит результат в следующем формате
ResourceName ProjectName TaskName Timesheet Period ActualWork TimeByDay DayName
Jim Carry Project A Task A 2011-12 40 09/10/2011 Monday
Jim Carry Project A Task A 2011-12 70 09/10/2011 Monday
Jim Carry Project B Task A 2011-12 80 09/12/2011 Tue.
Perth S. Project A Task A 2011-12 35 09/10/2011 Mon.
Я хочу написать запрос, чтобы он выглядел примерно так:
ResourceName ProjectName TaskName Timesheet Period Monday Tue
Jim Carry Project A Task A 2011-12 110 80
Как вы видите, новые столбцы создаются во втором имени запроса, как понедельник, вторник и так далее. Кроме того, общая сумма также рассчитывается на основе дня, и, следовательно, результат столбца понедельника равен 40 + 70, а значения вторника - 80 + 0.
Ниже приведен запрос, который приводит фрагмент кода 1
DECLARE @startdate DATETIME
DECLARE @enddate DATETIME
SET @startdate='1/1/2011'
SET @enddate='12/31/2011'
SELECT TOP 100 [IR.TimesheetProjectHoursByDay].ResourceName,
[IR.TimesheetProjectHoursByDay].ProjectName,
[IR.TimesheetProjectHoursByDay].TaskName,
[IR.TimesheetProjectHoursByDay].PeriodName + ' ' + '(' + CONVERT(NVARCHAR, [IR.TimesheetProjectHoursByDay].PeriodStartDate, 101) + ' - ' + CONVERT(NVARCHAR, [IR.TimesheetProjectHoursByDay].PeriodEndDate, 101) + ')' AS [Timesheet Period],
[IR.TimesheetProjectHoursByDay].ActualWork,
[IR.TimesheetProjectHoursByDay].TimeByDay,
DATENAME(dw,TimeByDay) as [DayName]
FROM [IR.TimesheetProjectHoursByDay]
WHERE [IR.TimesheetProjectHoursByDay].TimeByDay >= @StartDate
AND [IR.TimesheetProjectHoursByDay].TimeByDay <= @EndDate
AND [IR.TimesheetProjectHoursByDay].[Project Departments] LIKE N'CSENG'
AND [IR.TimesheetProjectHoursByDay].ActualWork > 0
AND [IR.TimesheetProjectHoursByDay].ResourceName LIKE '%Jim%'
GROUP BY [IR.TimesheetProjectHoursByDay].TimeByDay,
[IR.TimesheetProjectHoursByDay].ResourceName,
[IR.TimesheetProjectHoursByDay].ProjectName,
[IR.TimesheetProjectHoursByDay].TaskName,
[IR.TimesheetProjectHoursByDay].[Project Departments],
[IR.TimesheetProjectHoursByDay].ResourceStandardRate,
[IR.TimesheetProjectHoursByDay].PeriodName,
[IR.TimesheetProjectHoursByDay].PeriodStartDate,
[IR.TimesheetProjectHoursByDay].PeriodEndDate,
[IR.TimesheetProjectHoursByDay].ActualWork
ORDER BY [IR.TimesheetProjectHoursByDay].TimeByDay DESC
Подскажите, пожалуйста, какие изменения мне нужно внести в SQL-запрос, чтобы я мог получить результат, как указано во фрагменте кода 2?
Дайте мне знать, если требуется какой-либо вклад. Пожалуйста, ознакомьтесь с таблицей тестовых данных, которая делает вещи более понятными на здесь
Пожалуйста, руководство!
Спасибо!