
Наверно, каждому программисту Дельфи нужно знать как грамотно провести кросс-таблицу именно через 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-движков хорошо сохранят итог именно в кэше, потому и сама быстрота выполнения данного запроса является очень высокой.
Так вот…
+0