が、私は以下の形式で結果をもたらすSQLクエリを書かれているSQL Serverのクエリを再フォーマットする方法は?
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
このように、新しい列は月曜日、火曜日などの2番目のクエリ名に作成されています。さらに、合計は曜日に基づいて計算されるため、月曜日の列の結果は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
をもたらすクエリは、私はコードスニペット2で述べたように、私は結果を得ることができるように、SQLクエリに何をする必要があるかの変化を私に提案してくださいすることはできますか?
必要な入力があれば教えてください。物事をより明確に見せるテストデータシートを見つけてくださいhere ガイドしてください!
ありがとうございます!
これは誤った結果にはなりませんが、クエリが元の結果セットのタスクaとbに実際に分割されたときに、タスクAに依然として110時間を割り当てているためです。 –
ありがとうございました。私は今私の結果セットを変更しました。 –
さらに、タスクBの場合でも、実際には何も問題はありませんでした。計算する必要があるのは、ジム・キャリーが働いている仕事の総時間です。 –