Spotfire - ограничивающая информационная ссылка выражение colum - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть столбец данных [Sales ID], в котором вводятся дубликаты данных для анализа. Моя цель - попытаться ограничить данные, чтобы получать уникальные идентификаторы продаж только для максимального числа каждого месяца в анализе (вместо ежедневных). Я в основном пытаюсь заставить его извлекать только уникальные значения идентификаторов продаж за последний день каждого месяца в анализе, и если текущий день является последним днем, то он должен это включить. Максимальная дата в любом месяце. Пожалуйста, как мне написать выражение со столбцом [Sales ID] и [Date], чтобы получить это?

1 Ответ

0 голосов
/ 28 сентября 2018

Вероятно, два самых простых варианта -

1) Отрегулируйте SQL, как указано выше.

2) Ограничьте визуализацию с помощью параметра «Ограничить использование данных выражением», используя следующее:

Rank(Day([DATE]), "desc", Month([DATE]), Year([DATE])) = 1

Если вам нужно было сделать это в разделе «Данные по требованию» (возможно, сам IL является usp или у вас нет прав на его редактирование), я бы предпочел создать другую таблицу данных, которая имеет только максимальные даты за каждый месяц, а затем отфильтруйте вашу первую таблицу данных по этому.

Однако, если вам действительно нужно сделать это в разделе «Данные по требованию», то, я думаю, у вас нет возможности создавать свои собственные информационные ссылки. Это означает, что вы не можете отключить дополнительные таблицы данных, и вам, вероятно, придется проявить творческий подход.

К творческим ограничениям относится необходимость знать «правила» ваших данных - ежедневно ли вы загружаете данные? Раз в неделю? У вас есть сегодняшние данные или сегодня - 2? Вы могли бы возможно написать скрипт на python, чтобы получить последний день каждого месяца за последние 10 лет, а затем, какой бы ни была вчерашняя дата, и выбросить все эти значения в свойство документа. Это позволит вам сделать «Значения из собственности».

(Примечание: я хочу сказать, что вы также можете сделать это прямо в части выражения с чем-то вроде очень длинного
Date(DateTimeNow()),DateAdd("dd",-1,Date(Year(DateTimeNow()), Month(DateTimeNow()), 1))

Но Spotfire отказывается принимать это как несколько значений. Интересно, что когда я извлекаю логику для свойства StringList, он дает следующее: $ map ("$ {udDates}", ","), что говорит о том, что запятые являются точной методологией, но я получаю сообщение об ошибке "Ожидаемый конец" выражение "но найдено", "". Не уверены, является ли это проблемой Spotfire или связано с моим подключением к базе данных)

tl; dr - Выполнение этого в разделе «Данные по требованию», вероятно, запутано. Рекомендую корректировать в SQL, если это возможно, и иначе ограничивать в визуализации

...