Sep 02

Делаем собственную кросс-таблицу с помощью pivot-таблицы

Наверно, каждому программисту Дельфи нужно знать как грамотно провести кросс-таблицу именно через pivot-таблицу…

При использовании pivot-таблицы, используется механизм, аналогичный (если брать, к примеруотносительно базы SQL).

Давайте попробуем представить, что имеетсяу нас все данные продаж в самой таблице с полями под названиями Product, Store, Sales, Month и сильно Вам надобно все данные показывать только по продуктам ежемесячно. (укажем также, что именно поле по имени 'month' собственное значения имеет именно 1..12.)

Спонсор поста: желаете найти интернет провайдера с самыми низкими тарифами для того, чтобы подключить интернет в Москве? Сервис 2ip.ru предлагает пользователям широкий выбор мобильных интернет операторов, а также дает возможность подключить интернет на билайн и узнать последние новости мира мобильного интернета!

Вот показательный пример:

Store Product Month Sales

#1 Toys 1 100

#2 Toys 1 68

#1 Toys 2 150

#1 Books 1 75

...

Необходимый нам отчет скорее всего будет идентичен этому:

Product January February March .....

Toys 168 150

Books 75 .....

Ставим саму pivot-таблицу правда уже с именем tblPivot и также дванадцатью строками:

pvtMonth pvtJan pvtFeb pvtMar pvtApr ....

1 1 0 0 0 ....

2 0 1 0 0

3 0 0 1 0

4 0 0 0 1

.....

Что же мы имеем? Правильный запрос, который выполненный вот так:

select Product, January=sum(Sales*pvtJan),

February=sum(Sales*pvtFeb),

March=sum(Sales*pvtMar),

April=sum(Sales*pvtApr),...

where Month = pvtMonth

group by Product

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

Необходимо отметить еще и тот факт, сто сама pivot-таблица состоит только из двенадцати строк и большая часть SQL-движков хорошо сохранят итог именно в кэше, потому и сама быстрота выполнения данного запроса является очень высокой.

Так вот…



  1. хрум
     Add karma Subtract karma  +0
    Цитировать.

    Наткнулся случайно на Ваш блог. Теперь стану постоянно просматривать. Надеюсь, не разочаруете и дальше

    1

Поделитесь вашими мыслями

Поддерживаемые теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>