logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Как выбрать топ значений в матрице
  • Как использовать хранимые процедуры в FastReport .NET

    14 августа 2018 г.

    В этой статье пойдет речь об использовании хранимых процедур для получения данных для отчета. На

    Подробнее
  • Как использовать хранимые процедуры с несколькими наборами данных в результате

    8 мая 2020 г.

    Часто, при создании отчетов, нам приходится иметь дело с базами данных, далекими от идеала. Различные

    Подробнее
  • Как использовать динамические запросы в FastReport .NET

    14 августа 2018 г.

    Большинство пользователей FastReport .NET строят отчеты получая данные из SQL СУБД, и хотели бы пользоваться

    Подробнее
  • Как использовать SQL функции в FastReport .NET

    14 августа 2018 г.

    Для получения данных в MS SQL можно использовать sql запросы, хранимые процедуры и хранимые функции.

    Подробнее
  • Новые возможности и сравнения объектов Matrix и AdvancedMatrix

    23 марта 2022 г.

    Совсем недавно в FastReport .NET появился объект AdvancedMatrix. В этой статье мы рассмотрим структуру

    Подробнее

Как выбрать топ значений в матрице

22 апреля 2021 г.

Статья актуальна до версии 2022.1.

В FastReport.NET есть прекрасный инструмент для вывода данных в виде сводной таблицы, или матрицы. Многим бы хотелось расширить функциональность матриц, например, такой полезной опцией, как выбор топ N значений. Казалось бы, что проще, чем выбрать первые N строк из источника данных. Но помимо выборки из топ значений, нужно сгруппировать все остальные данные в одну запись и  в этом заключается главная сложность. Штатными средствами объекта Matrix это сделать невозможно. 

Поэтому нам нужно подготовить данные так, чтобы в них были, и топ значений, и сумма по всем остальным значениям. Этот способ подходит для SQL баз данных. Всё что нам нужно — написать SQL запрос.

Допустим мы выводим список зарплат сотрудников по годам. В редакторе источника данных вы можете использовать SQL запрос, если используется SQL база данных.

Мастер обработки данных

Вот как будет выглядеть SQL запрос, который выберет нам топ 2 значения и сумму по остальным:

SELECT top 2 name, year, month, salary FROM crosstest ORDER BY salary
UNION
SELECT 'Other' AS name, year, month, SUM(salary) FROM crosstest
WHERE name NOT IN (SELECT Top 2 name FROM crosstest ORDER BY salary)
GROUP BY name, year, month

Здесь мы объединили два запроса с помощью оператора union. В первом запросе выбираем топ значений, а во втором — сумму всех остальных значений.

В итоге получаем вот такую матрицу:

Итоговый результат

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

О продукте Скачать Купить
avatar
Dmitriy Fedyashov
Технический писатель
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport SQL Data filtering Matrix

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • Онлайн поддержка
  • FAQ
  • Видео уроки
  • Форум
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2022 ООО «Фаст Репортс»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой