Меня попросили изменить сводный запрос, который в настоящее время отображает дату окончания недели, категорию и часы по дате для одной недели подряд. Меня попросили отобразить поле комментария в конце строки, и я не могу понять, как изменить запрос, чтобы сделать это.
Таблица структурирована следующим образом
Category Date Comments Hours
test 8/2/2010 myComment 2
test 8/3/2010 8
test 8/4/2010 4
test 8/5/2010 3
test 8/6/2010 5
Я бы хотел, чтобы данные отображались следующим образом. У меня есть запрос, который будет отображать все это, кроме комментария. На переднем крае я собираюсь разрешить только один комментарий в неделю и добавить его в строку с датой понедельника в таблице для каждой комбинации недели / категории.
WeekEnding Category SunHrs MonHrs TuesHrs WedHrs ThuHrs FriHrs SatHrs Comment
8/7/2010 test 0 1 1 1 1 1 1 myComment
Вот запрос перед добавлением поля комментария, который работает нормально.
DECLARE @WeekEnding datetime
DECLARE @UserName nvarchar(245)
SET @WeekEnding = '09/04/2010'
SET @UserName = 'brogers'
SELECT
@WeekEnding WeekEnding
,CategoryID
,isnull([1], 0) SunHrs
,isnull([2], 0) MonHrs
,isnull([3], 0) TueHrs
,isnull([4], 0) WedHrs
,isnull([5], 0) ThuHrs
,isnull([6], 0) FriHrs
,isnull([7], 0) SatHrs
from (select CategoryID, Datepart(dw, TimeEntryDate) DOW, TimeEntryDuration Hours
from dbo.aspnet_starterkits_TimeEntry
where TimeEntryDate between dateadd(dd, -6, @WeekEnding) and @WeekEnding) Source
pivot (max(Hours) for DOW in ([1],[2],[3],[4],[5],[6],[7]) ) as pvt
Я не уверен, как добавить поле комментария в конец строки. Когда я добавляю его, я получаю результат, подобный этому
WeekEnding Category SunHrs MonHrs TuesHrs WedHrs ThuHrs FriHrs SatHrs Comment
8/7/2010 test 0 0 1 1 1 1 0
8/7/2010 test 0 1 0 0 0 0 0 myComment
Мне нужна только одна строка для каждой комбинации выходного дня / категории и один комментарий на строку в выходных данных.
Вот запрос, в который я добавил поле комментария и отображается некорректно.
Может кто-нибудь указать, как отображать один комментарий в неделю / строку категории?
DECLARE @WeekEnding datetime
DECLARE @UserName nvarchar(245)
SET @WeekEnding = '09/04/2010'
SET @UserName = 'brogers'
SELECT
@WeekEnding WeekEnding
,TimeEntryDescription
,CategoryID
,isnull([1], 0) SunHrs
,isnull([2], 0) MonHrs
,isnull([3], 0) TueHrs
,isnull([4], 0) WedHrs
,isnull([5], 0) ThuHrs
,isnull([6], 0) FriHrs
,isnull([7], 0) SatHrs
from (select
CategoryID,
Datepart(dw, TimeEntryDate) DOW,
TimeEntryDuration Hours,
TimeEntryDescription
from dbo.aspnet_starterkits_TimeEntry
where TimeEntryDate between dateadd(dd, -6, @WeekEnding) and @WeekEnding) Source
pivot (max(Hours) for DOW in ([1],[2],[3],[4],[5],[6],[7]) ) as pvt
Несмотря на то, что в исходной таблице есть поле комментария для каждого дня недели, я хочу только один комментарий в неделю и одну строку в неделю / комбинацию категорий.
Я ограничу ввод только одним разом в неделю (например, понедельник) и хочу, чтобы этот комментарий отображался в конце строки выходного запроса.