Имеется таблица с данными
| id | account_id | type_change_account_id | old_val | new_val | start_date | | 1 | 1 | 1 | 20 | 22 | 5.10.2012 | | 2 | 1 | 1 | 22 | 25 | 8.10.2012 | | 3 | 1 | 1 | 25 | 21 | 11.10.2012 | | 4 | 1 | 4 | 1 | 3 | 17.10.2012 | | 5 | 1 | 4 | 2 | 1 | 9.10.2012 | | 6 | 1 | 4 | 3 | 2 | 5.11.2012 | | 7 | 1 | 1 | 21 | 18 | 25.10.2012 | | 8 | 1 | 1 | 18 | 29 | 5.11.2012 | | 9 | 2 | 1 | 15 | 17 | 6.10.2012 | | 10 | 2 | 1 | 24 | 27 | 8.11.2012 | | 11 | 2 | 4 | 3 | 2 | 10.10.2012 | | 12 | 2 | 4 | 2 | 4 | 12.11.2012 | | 13 | 2 | 1 | 17 | 24 | 20.10.2012 |
|
Необходимо сделать отчёт изменений по аккаунтам(месячный, годичный)
Выбирая какой либо временной промежуток(чаще всего месяц), необходимо проанализировать все изменения аккаунта, где type_change_account_id=1,4, причем вынести в отдельные столбцы значения для type_change_account_id=1 и 4, в моём случае это id площади квартиры и id количества жильцов квартиры.
Запросом
Select ca.account_id, ca.type_change_account_id, ca.old_val, ca.new_val, ca.curr_date
from DBA.change_account ca
where ca.type_change_account_id in (1,4) and ca.start_date between ('2012-10-01') and ('2012-10-31')
я получаю все необходимые мне данные, однако у таблицы данных должен быть вид
где account_id- номер аккаунта
date - дата изменения по аккаунту(любого)
kol- актуальный new_val для данного аккаунта, заданной даты и type_change_account_id=4
соответственно колонка pl для type_change_account_id=1
То есть, если нам необходимо получить данные за октябрь 2012, у нас должна получится вот такая таблица
| account_id | kol | pl | date | | 1 | 2 | 22 | 5.10.2012 | | 1 | 2 | 25 | 8.10.2012 | | 1 | 1 | 25 | 9.10.2012 | | 1 | 1 | 21 | 11.10.2012 | | 1 | 3 | 21 | 17.10.2012 | | 1 | 3 | 18 | 25.10.2012 | | 2 | 3 | 17 | 6.10.2012 | | 2 | 2 | 17 | 10.10.2012 | | 2 | 2 | 24 | 20.10.2012 |
|
п.с. Надеюсь оформил понятнее