Советы по использованию сводной таблицы в Oracle

Мне нужен отчет, и я должен использовать сводную таблицу для него. Отчет будет группироваться по категориям. Неправильно использовать случай, когда заявление, потому что есть много категорий. Мы можем рассматривать базу данных Northwind как образец, и все категории будут показаны как столбцы и Report покажет предпочтение клиентов среди категорий. Я не знаю другого решения и видел примеры как хранимые процедуры в Интернете для Sql Server. Вы знаете решение, кроме случая использования, когда?

Спасибо

13.12.2008 14:01:11
4 ОТВЕТА
РЕШЕНИЕ

Как только вы получаете Oracle 11G, появляется встроенная функция PIVOT . До этого вы можете использовать выражения CASE (или DECODE). У меня есть статья о том, как автоматизировать это, в моем блоге.

5
14.12.2008 16:40:06

Больно делать перестановки строк / столбцов в SQL. Каждую строку, которую вы хотите превратить в столбец, вы должны явно указать. Поэтому, если у вас много категорий, ваш запрос будет очень длинным, и он будет меняться каждый раз, когда вы добавляете / удаляете / меняете категорию (это, вероятно, метод CASE, который вы упоминаете). Вы можете написать хранимую процедуру для генерации, которая сгенерирует этот запрос для вас (или иным образом создаст нужный вам набор результатов), но, честно говоря, в этом и заключается безумие (и, вероятно, ужасная производительность).

Возьмите данные в виде строк, как SQL, безусловно, хочет их предоставить, а затем приложение преобразует их в столбцы. Это будет намного проще, чем заставлять SQL делать то, чего он не хочет.

0
14.12.2008 05:21:45
Я не использую 11G, и я делал ваше решение раньше для другого случая. Честно говоря, я искал решение, подобное процедуре Тони, спасибо за вашу помощь.
Compiler 15.12.2008 14:20:31

Вы можете использовать Oracle Data Cartridges ( http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14289/dciwhatis.htm ) для создания сводных таблиц более эффективно, чем case / when, но имейте в виду, что это нелегко вещи, и я нашел документацию довольно немного местами.

0
14.12.2008 10:15:39

Я использую инструменты отчетности для создания отчетов, они помогают поддерживать чистоту представлений и запросов без форматирования. Обычно пользователи запрашивают Excel, а Excel сам по себе является очень хорошим инструментом отчетности. В Excel есть много способов импорта данных, но я предлагаю XML в качестве входных данных, потому что вы можете открыть его как обычную таблицу Excel.

  1. Используйте Excel, чтобы открыть файл XML с образцами данных
  2. Выберите таблицу и нажмите «Вставить сводку»
  3. Добавьте форматирование и сохраните этот файл как шаблон

Excel запоминает путь к файлу XML данных, и вам просто нужно заменить данные, чтобы обновить отчет. Есть много других способов, я использую приложение JAVA на веб-сервере для объединения шаблона Excel и вывода SQL. Этот код является бесплатным и с открытым исходным кодом, но он не поможет разработчикам, не являющимся JAVA. Https://github.com/jbaliuka/x4j-analytic Существует множество других инструментов для создания «профессиональных» отчетов.

0
6.02.2014 20:47:09