В этом отчете агрегируются данные из верхней части по неделям в дни, используя развертку. Теперь я просто извлекаю детали даты со дня, чтобы я мог группироваться на столах, и он прекрасно работает , но, первый день недели установлен на 7 или в воскресенье, и мне нужно, чтобы он начинался с 1 , или в понедельник. Очевидное решение, которое я прочитал, - SET DATEFIRST 1
- кстати, когда я пытаюсь использовать SET
, я получаю сообщение об ошибке, подтверждающее, что он не поддерживаетсяSSRS 2008 R2 Измените первый день недели на понедельник
Я читал, что вы можете изменить глобальные настройки отчета, чтобы сделать это - но я понятия не имею, где и предпочел бы иметь возможность сделать это локально в этом запросе, если это возможно. Кроме того, я возился вокруг с @@DATEFIRST
, но все это делает, конечно, отчет о том, что первый день недели 7.
SELECT DATENAME(week, CAST(Date AS date)) AS week, DATENAME(dw, CAST(Date AS date)) AS day, CONVERT(date, Date, 103) AS date, FROM_NUMBER, DURATION,
TYPE_OF_CALL, ID, DATEPART(dw, CAST(Date - 1 AS date)) AS dayCode
FROM CallCenterStatsCDR
WHERE (Date BETWEEN @StartDate AND @EndDate)
GROUP BY DATENAME(week, CAST(Date AS date)), CONVERT(date, Date, 103), DATENAME(dw, CAST(Date AS date)), FROM_NUMBER, DURATION, TYPE_OF_CALL, ID,
DATEPART(dw, CAST(Date - 1 AS date))
ORDER BY Date DESC
Что произойдет, если вы попробуете установить дату сначала самостоятельно? Вот так >>> SELECT @@ DATEFIRST; SET DATEFIRST 1; SELECT @@ DATEFIRST; –
SET нигде не разрешен, SQL не будет анализировать – nbpeth