2015-04-15 1 views
0

Я работаю над проектом BI отчета о старении, и я застрял на этих выражениях. Я пытаюсь подсчитать количество приложений между NOW() и полем даты. Я получаю счет обратно, но не общее количество приложений в диапазоне дат.SSRS Date Aging Expression for 0-30 DAYS

0-30 ДНЕЙ

=iif(DateDiff("d",Fields!APP_RECEVIED.Value, now())>=0 and DateDiff("d",Fields!APP_RECEVIED.Value,Now())<=30,1,0) 

31-60 ДНЕЙ

=iif(DateDiff("d",Fields!APP_RECEVIED.Value, now())>=31 and DateDiff("d",Fields!APP_RECEVIED.Value,Now())<=60,1,0) 

61-90 ДНЕЙ

=iif(DateDiff("d",Fields!APP_RECEVIED.Value, now())>=61 and DateDiff("d",Fields!APP_RECEVIED.Value,Now())<=90,1,0) 

> 91 ДНЕЙ

=iif(DateDiff("d",Fields!APP_RECEVIED.Value, now())>=91 and DateDiff("d",Fields!APP_RECEVIED.Value,Now())<=99999999,1,0) 

Спасибо, Arron

+1

Было бы лучше рассчитать его в вашем SQL-запросе, если сможете. – Stephan

+1

Не уверен, что вы имеете в виду, вы получаете счет, но не общее количество. Возможно, вам просто нужно поместить каждое из этих выражений в функцию SUM()? –

+0

Tab Alleman. Это сработало. Сумма добавила значения, необходимые для завершения инструкции. Я чувствую себя довольно LAME, что было так просто. Ниже приведено правильное разрешение: '= SUM (IIF (DateDiff (" d ", Fields! APP_RECEVIED.Value, now())> 31 и DateDiff (" d ", поля! APP_RECEVIED.Value, Now()) <= 60 , 1, 0)) ' –

ответ

0

Используйте выполнить задачу SQL, чтобы вызвать скрипт, который делает эти вычисления для вас. Напишите сценарий в SSMS, проверьте его и убедитесь, что данные возвращают то, что вам нужно, а затем помещают его в задачу. SQL очень хорош в этом.