Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2021, 13:28   #1
NatM
 
Регистрация: 01.10.2021
Сообщений: 9
По умолчанию Формирование истории из нескольких таблиц в PostgrSQL

Есть три таблицы (прилагаются):
- Таблица ObjectsHistory oh - история Объектов. У Объектов есть статусы. Бывает, что у Объекта нет статуса (не проставлен),
- Таблица PackagesHistory ph - история Пакетов. У Пакетов есть статусы. Бывает, что у Пакета нет статуса (не проставлен),
- Таблица ObjectToPackage op - связи объектов с пакетами. Объекты могут находиться в Пакетах, перемещаться между Пакетами, а также могут находиться вне Пакетов. В один момент времени Объект может быть только в одном Пакете либо вне Пакетов.

Как сформировать результирующую таблицу, в которой отображается история всех событий до текущей даты (текущая дата задается как входящий параметр)? -
- история изменения статусов объектов,
- история изменения принадлежности объектов к пакетам,
- история изменения статусов пакетов.

Сначала выбрать неповторяющиеся Объекты и даты изменения их Статусов. По этой выборке определить:
- как менялось отношение ObjectToPackage op,
- как менялись статусы пакетов в PackagesHistory ph.

В результирующую таблицу должны попасть:
- все изменения статусов объектов, Id выводится в строке, где событие ObjectStatusChange,
- все перемещения объектов между пакетами, Id выводится в строке, где событие ObjectToPackageChange
- все изменения статусов пакетов, начиная с даты вхождения объекта в пакет, указанной в колонке B, до даты вхождения в следующий пакет (либо выхождения из пакетов вообще). Id выводится в строке, где событие PackageStatusChange
Если в дату вхождения объекта в пакет не осуществлялась смена статуса пакета, то указывается его текущий статус на эту дату.
Если от последней даты в колонке B до текущей даты производилась смена статуса пакета, то выводятся все такие даты.


Прилагается файл, в котором на первом листе - три таблицы, заполненные исходными данными, а на втором листе - конечный результат (т.е. вручную по исходным данным собрана таблица с общей историей). На листах "Промежуточный результат" показан процесс сборки конечного результата с использованием формул в Excel.
Вложения
Тип файла: xls Таблицы.xls (77.5 Кб, 1 просмотров)
NatM вне форума Ответить с цитированием
Старый 25.10.2021, 15:34   #2
NatM
 
Регистрация: 01.10.2021
Сообщений: 9
По умолчанию

Закрываю вопрос. Вопрос отпал.
NatM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параллельное формирование двух таблиц с поиском дублей KBO БД в Delphi 3 26.06.2018 12:06
Возможно ли сделать формирование таблицы на основе других таблиц Сергей Будаев Microsoft Office Excel 7 29.03.2016 13:18
формирование файла из нескольких Russdoc Microsoft Office Word 4 13.12.2012 22:37
Автоматическое формирование нескольких отчётов по данным из формы Kerguru Microsoft Office Access 1 20.04.2010 20:20
Формирование нескольких сводных таблиц FormAlDeGid Microsoft Office Excel 0 24.10.2009 12:04