2015-01-13 4 views
0

Я разрабатываю отчет с использованием SQL и SSRS, который дает дневную разбивку статистики с 1-го числа по предыдущий день.Предложение SQL Date для служб Reporting Services

Тем не менее, в первый месяц месяца отчет выглядит пустым, когда мне это нужно, чтобы показать информацию за предыдущие месяцы (например, 1 февраля мне нужен отчет, который дает мне изо дня в день разбивку января с . 1-го по 31-

Я попытался следующий случай заявление в SQL, где положение, чтобы увидеть, если это будет исправить эту проблему, но это не похоже на работу:

(dIntervalStart BETWEEN dbo.DateAndTime(CASE WHEN DAY(GEtDate()) = 1 THEN DATEADD(mm, DATEDIFF(mm, 0, GETDATE() - 1), 0) ELSE DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0) END, '00:00:00') 

есть ли что-то еще, что могло бы работать ?

ответ

0
declare @StartOfMOnth bit 
declare @startDate date 
declare @endDate date 

select @StartOfMOnth = 
case when datepart(dd, getdate()) <> 1 then 0 
else 1 
end 


IF (@StartOfMOnth = 0) --If not start of month 
BEGIN 
SELECT @startDate = DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) --First day of current month 
SELECT @endDate = DATEADD(DD, -1, GETDATE())--Previous day 
END 

ELSE --If start of month 

BEGIN 
SELECT @startDate = DATEADD(MONTH, -1, DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)) --First day of last month 
SELECT @endDate = DATEADD(DD, -1, DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0))--Last day of last month 
END 

--Once you have start and end dates, do what needs to be done in the dataset 
Смежные вопросы