172 похожих чатов

У меня есть очень большая таблица (таблица фактов) в ней

~10 колонок ведущие в справочники + 10 числовых колонок + 5 колонки с датами.

В таблице ~500 млн. строк

У меня часто возникают задачи по выводу отчета из этой таблицы, типо вывести сумму такой-то колонки, что бы один справочник был в строках, второй справочник в колонках.

Я эту задачу делаю очень легко следующим способом, я просто агрегирую эту таблицу по нужным справочникам и вывожу в ексель. А уже там делаю сводную таблицу и отчет готов.

Раньше я делал отчеты по запросу, примерно раз в неделю. Однако такие разные отчеты у меня сейчас просят уже по штук 10 в минуту! У заказчика теперь работает много людей. Реально сейчас вот прям надо сделать 10 отчетов с разными наборами справочников и разными фильтрами.

Есть ли какой-то софт, который позволяет делать "Сводную таблицу" мышкой с веб-интерфейсом?

9 ответов

22 просмотра

почитайте про нормализацию баз данных понятно, что вы сделали одну большую таблицу для удобства. Но - так делать нельзя, хотя и очень хочется

Андрей-Никитин Автор вопроса
Alex Chickin
почитайте про нормализацию баз данных понятно, что...

Это действительно таблица одна, там просто все контракты. Ее не раскидать на разные. Да и отчеты часто требуется сделать по всей таблице. Но это ни как не связано с вопросом Там используется схема звезда

Андрей Никитин
Это действительно таблица одна, там просто все кон...

ну вообще, в MS Access например можно мышкой накидать отчёты из базы. токую работу можно сделать языком запросов, он там есть

Андрей-Никитин Автор вопроса
Alex Chickin
ну вообще, в MS Access например можно мышкой наки...

В идеале бы хотелось что бы вовсе данные крутил сам заказчик без моего участия

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

Андрей-Никитин Автор вопроса
Alex Chickin
в общем случае - "вот тебе база данных, дорогой за...

Ну вообще-то есть, мы использовали pentaho, и там все это прям из коробки готовое. Но теперь по политическим причинам отказались от pentaho

Андрей Никитин
В идеале бы хотелось что бы вовсе данные крутил са...

power bi попробуйте ему предложить для использования, не увидел что уже крутили его:)

Андрей-Никитин Автор вопроса
Anton
power bi попробуйте ему предложить для использован...

С радостью. Но он то же не подходит по политическим причинам

Андрей-Никитин Автор вопроса

Мой вопрос у меня стоит очень остро, может будут еще какие-то варианты?

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта