powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / разработка сложных отчётов в оракле (и не только)
11 сообщений из 11, страница 1 из 1
разработка сложных отчётов в оракле (и не только)
    #39063069
dmitryk1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Постоянно требуется разработка всё более сложных запросов по просьбам отдела статистики и тому подобных.

Хочу попросить народ поделиться опытом построения таких сложных отчётов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
                  столбцы:
                                     просыпающиеся | зеленоглазые |  программисты | сидящие в красном |  Всего
                                        до 12      |              |               |      кресле       |
строки:                          |
Васи                             |        20       |       8      |
Миши                             |        10       |       6      |
Пети до 25 лет                   |        45       |       1      |   и т.д...
Зелёные Васи                     |        18       |       3      |
Миши и Пети старше 40            |        12       |      15      |
  из них посетивших Кипр         |         4       |       2      |

Разумеется все данные нафантазированы.

как можно написать такой запрос?
В кристале подобный отчёт написан плоско - выдаёт кучу столбцов, каждый из которых высчитывается отдельно а потом ещё и суммируется и получается что выдаётся развёрнутая в одну строку данная таблица, а кристал её просто форматирует.

Некоторые мои коллеги пишут один запрос итоговый (и я склоняюсь к такому) - одну строчку таблицы, а потом с помощью union all делают кучу строк по образу и подобию включая в каждую дополнительные условия.

Ещё коллеги сделали процедуру генерящую запрос, который возвращает одну строку таблицы, потом вызывают эту процедуру с разными условиями получают результат (по мне так тот же юньон олл)

Может кто-то делает более хитрые, и элегантные конструкции? Поделитесь опытом.
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39063090
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такого особо хитрого в cross-tab AKA "шахматка"?..
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39063092
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для етого Билл Гейцц придумал Ёксель
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39063104
kva6513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitryk1,

Есть пара статеек на Хабре про использование кляузы Model для создание отчетов. Разбираемое там несколько похоже на ваш сферический пример. Гляньте, может что-то пригодится.
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39063108
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitryk1Может кто-то делает более хитрые, и элегантные конструкции? Поделитесь опытом.

Да вам OLAP нужен батенька :-)
Поинтересуйтесь есть ли у вашей БД готовое OLAP решение.
Если есть, то постарайтесь его внедрить.
Как минимум OLAP-кубы и предназначены для такого вида отчетов.
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39063111
dmitryk1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

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

А поскольку строки разные - я их генерю ручками с разными условиями, получается я могу их только юнионом склеить.
Вот у меня и вопрос то был, как можно по другому, не прописывая 20-50 раз (по числу строк) один запрос с небольшими вариациями.

Сможете прислать пример какого-то отчёта который выводит такие данные?
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39063113
dmitryk1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Ну да. Вы про выдачу общих данных и отдачу в руки пользователя итогового подсчёта?
Или имеется в виду макрос, который это будет считать коннектясь к базе? Или ещё что-то?
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39063143
dmitryk1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kva6513,

Спасибо. Похоже это замена олапу. Буду изучать :)
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39065288
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitryk1,

1.На одном листе Excel рисуете шаблон отчета, названия строк, колонок, форматирование и т.д.
2.На втором листе в ячейках, соответствующих ячейкам данных шаблона, записываете select-ы ... ,
или вызовы процедур, или параметры запросов.
3.Пишете макрос, который генрирует запросы по данным 2-го листа, обращается к серверу, и складывает
результаты в соотв.ячейки 1-го листа.
Для небольших неформализуемых отчетов можно применять такой подход.
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39066960
dmitryk1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DirksDRdmitryk1,
[skip]
Для небольших неформализуемых отчетов можно применять такой подход.

Тут, возможно, будет проще тогда сохранить документ как хтмл, затем с него с сервера дёргать данные и вставлять в поля, названные в соответствии с айдишником.
И данных можно дёргать много и с параметрами. У меня даже такое реализовано :)
И безопасность тут лучше работает чем в экселе, и не требует установки какого-то дополнительного софта.

В общем-то вопрос затеял исключительно чтобы узнать, вдруг есть какие-то ещё более хитрые способы, которые я упустил. Исключительно чтобы сократить количество шагов выполняемых для изменения отчёта. Сейчас получится - изменить страницу, добавив поля которые надо заполнить, изменить яваскрипт, чтобы получал новые данные, если это не расширение текущего запроса, а ещё один дополнительный запрос, ну и непосредственно сам запрос. В принципе можно извратиться и этап изменения яваскрипта опустить, вписав необходимое в хтмл код (конфиг), но всё равно два шага.
Но лень-матушка тредует и это упростить :)

Вот про "кляузы Model" читаю. В принципе многообещающе.
...
Рейтинг: 0 / 0
разработка сложных отчётов в оракле (и не только)
    #39068084
A. Gromov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitryk1,



откройте для себя функцию pivot
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / разработка сложных отчётов в оракле (и не только)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]