Помогите создать фильтр , который будет фильтровать дату создания Продажи меньше 2.5 месяцев (или можно в днях - меньше 76 дней) назад в любой момент времени. Чтобы не надо было каждый раз в фильтре самостоятельно менять конкретную дату.

Задача была разделить продажи на созданные меньше, чем 2,5месяца назад, от 3,5 до 2,5, от 4,5 до 3,5, и те которые созданы больше чем 4,5 месяца назад.

Нравится

7 комментариев

Мой совет создать в sq_Opportunity дополнительную колонку, которая будет считать кол-во дней со дня создания.
Так необходимо в sq_Opportunity создать "Колонку с текстом SQL" и написать туда

DATEDIFF(day, tbl_Opportunity.CreatedOn, GETDATE())

Добавить ее в датасет (целое число) и вот вы можете построить фильтр по дням с создания продажи.
С месяцами думаю тоже можно, но надо возиться.

Для месяцев, в колонку с текстом SQL надо написать

DATEDIFF(month, tbl_Opportunity.CreatedOn, GETDATE())
+
(DATEDIFF(day, tbl_Opportunity.CreatedOn, 
    DateAdd(  mm,
         DATEDIFF(month, GETDATE(), tbl_Opportunity.CreatedOn),
         GETDATE()
    )
)/1.0)
/
Day(
  DateAdd( day,
   -Day(DateAdd(month, 1, tbl_Opportunity.CreatedOn)), 
   DateAdd(month, 1, tbl_Opportunity.CreatedOn)
   )
)

И уже надо добавить в датасет колонку дробного типа.

пробую сделать первый вариант. Колонку с запросом назвала NumberDayCreated
После добавления в ds , в фильтрах появилось Количество дней от создания , но при попытке применить этот фильтр пишет "невозможно открыть ds_Opportunity. Invalid column name NumberDayCreated"

У меня такой проблемы не возникало на 3.4.0.130
Попробуйте поставить свойство колонке "Всегда выбирать в запросе", может поможет.
А какая у вас версия?

версия 3.3.2.287, я пробовала устанавливать галочку, но от этого ничего не изменилось

Виктория, присутствует ограничение на фильтрацию по колонке с текстом Sql, поэтому у Вас возникает ошибка. Но обойти ограничение Вы можете таким образом:
http://www.community.terrasoft.ru/blogs/4397

Да, Наталья, так помогло!

Показать все комментарии