2016-04-14 3 views
0

У нас есть отчет, который выводит таблицу A. Мы добавили таблицу B в модель отчета (мы добавили некоторые поля в отчет из таблицы B), что является отношением «много к одному» к таблице A. Теперь, когда мы запускаем отчет, мы получаем несколько строк, что следует ожидать из-за взаимосвязи между таблицей A и таблицей B.Показывать только самую последнюю запись в отчете

Проблема заключается в том, что мы хотим показать только в отчете последняя запись таблицы B, основанная на «дате создания».

Я попытался установить MAX (fields.CreationDate!)

Я нашел такую ​​информацию, как: https://social.msdn.microsoft.com/forums/sqlserver/en-US/2bc16c90-21d6-4c03-a17f-4a5922db76fe/displaying-records-by-max-date-in-ssrs

Но когда я делаю что-то вроде этого, я получаю «не может использовать агрегатную функцию ... ..." ошибка.

Если это был SQL заявление для TableB, было бы вдоль этих линий, чтобы отобразить только самую последнюю запись:

SELECT DISTINCT [ID], [PID], [InputDate], [Changed_Date] оТ (SELECT [ID], [PID], [InputDate], [Changed_Date], DENSE_RANK() в течение (раздел по PID порядка по Changed_Date Desc), как MyRank от TableB ), как RankSelect ГДЕ MyRank = 1 ЗАКАЗ ПО ПИДУ

Это дает мне самую последнюю запись для TableB. Я знаю, что технически я мог бы добавить представление или что-то в модель отчета, но я не хочу этого делать, поскольку другой отчет запускался, возможно, понадобится историческая запись всех записей в TableB. Поэтому я надеюсь каким-то образом включить приведенные выше результаты в отчет, не касаясь модели отчета. В котором в отчет включена только последняя запись из TableB. бы признателен за любую помощь о том, как мы можем ограничить отчет отображает только последнюю запись даты из таблицы B.

ответ

0

Я не смог найти разрешение на фильтрацию данных в самом отчете, поэтому я удалил TableB из модели отчета и заменил его на представление TableB, которое возвращает только самую последнюю запись, связанную с TableA. Не идеальны, так как я знаю, что в какой-то момент они попросят отчет «показать все записи» из TableB, но позже перейдут через этот мост :-)

1

Для вашего стола B, установите ФИЛЬТР для CreationDate на основе MAX дата свыше набор данных.

enter image description here

Это будет отображать только записи, где CreationDate матчей МАХ CreationDate из набора данных.

+0

Спасибо за вышесказанное, но когда я использую фильтр, я получите следующую ошибку: «FilterValue для набора данных« DataSet1 »включает в себя агрегатную функцию. Агрегатные функции не могут использоваться в фильтрах набора данных или в фильтрах области данных». Я получаю эту ошибку, когда применяю фильтр к фильтру Tablix Filter или DataSet. – Kocheese

Смежные вопросы