Группировка набора оборотных лет (Службы отчетности за 2016 год)

#sql #reporting-services #sql-server-2016 #reportbuilder3.0 #ssrs-2016

Вопрос:

Давний пользователь Stackoverflow, но на самом деле никогда не задавал вопросов. В настоящее время я в тупике с запросом на отчет.

Что мне нужно сделать с построителем отчетов, так это отобразить данные на страницах, сгруппированных по трем годам, но вот в чем загвоздка: мне нужно, чтобы они вращались.

Я составил запрос, но он статичен:

 SELECT distinct *, (dense_rank() over (order by [Year]) - 1) / 3   1 as [group]
FROM dwmy
 

Это отлично работает для группировки лет, когда мне также не нужно отображать прошлые годы. Чтобы дать вам представление о том, чего я пытаюсь достичь.

Итак, в текущем году это будет выглядеть так:

2019, 2020, 2021

В 2022 году:

2020, 2021, 2022

В 2023 году:

2021, 2022, 2023

Как вы можете видеть, текущий год по-прежнему остается в первой группе, но с началом нового года он медленно уходит с первой страницы. Старые группы по-прежнему будут отображаться на старых страницах, поэтому пользователи все еще смогут видеть старые группы 2019, 2020, 2021 или 2020, 2021, 2022 годов.

2019, 2020, 2021
2020, 2021, 2022
2021, 2022, 2023

Комментарии:

1. Если вы хотите изменить имена столбцов, вам нужно будет использовать динамический SQL.

2. Я не уверен, что понимаю, как будет выглядеть отчет. Будет ли он когда-либо показывать только три года, или он будет показывать три года как «представление данных в 2021 году», а затем на следующей странице три года из «представления данных в 2020 году» и т. Д.? Не могли бы вы предоставить некоторые примеры данных и ожидаемые результаты из тех же данных.

3. Я думаю, ты слишком много об этом думаешь. SELECT *, (YEAR(GETDATE()) - [YEAR]) / 3 1...

4. Привет @AlanSchofield. Я приложил данные Excel, чтобы показать, чего именно я пытаюсь достичь. Это должен быть скользящий список инструкторов на 3 года подряд. Я подумал, что, возможно, вставка дубликатов для каждой группы может быть самым простым способом достижения этой цели, но если есть более простой способ отображения одних и тех же данных на разных страницах, я бы хотел это услышать. Спасибо.