Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1

ТЕМА: Группировка с rollup в Oracle

Группировка с rollup в Oracle 18 июль 2011 01:33 #2356

  • Joker
  • Joker аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 46
  • Спасибо получено: 0
Привет
вот такой у меня вопросец возник.
Есть запрос :

select pi.name pin, okr.name okrn, ss.name ssn,
sum(grr.ob_r) plan,
from sfed_okr okr,ssub_rf ss,
spi_grr pi, objgrr grr
where grr.vid_opic=pi.code
and grr.fedokrc=okr.code
and grr.oblastc=ss.code
group by rollup(pi.name,okr.name,ss.name)

который возвращает следующее:

PIN OKRN SSN PLAN
майка Сибирская Иркутская обл. 500
майка Сибирская 500
майка 500

футболка Сибирский Р. Алтай 400
футболка Сибирский Иркутская обл. 500
футболка Сибирский 700

футболка Приволжский Саратовская обл.400
футболка Приволжский 400
футболка 1100

Хотелось бы получить следующий результат:

PIN OKRN SSN PLAN

майка 500
майка Сибирская 500
майка Сибирская Иркутская обл. 500

футболка 1100

футболка Сибирский 700
футболка Сибирский Р. Алтай 200
футболка Сибирский Иркутская обл. 500

футболка Приволжский 400
футболка Приволжский Саратовская обл.400

Иными словами, чтобы итоговые суммы выводились в порядке от общего к частному.
Очень не хочется разбирать recordset на клиенте, так как это лишь упрощенный вариант запроса.
Используется Oracle 8.1.5, Win2k,в качестве клиента ASP скрипт (ADO).
Заранее благодарю за помощь.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Группировка с rollup в Oracle 18 июль 2011 01:34 #2357

  • Gubin
  • Gubin аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 42
  • Спасибо получено: 0
Hi
Наверное, что-то вроде
select
...
order by pi.name pin, okr.name okrn, ss.name ssn,
, grouping(pi.name) desc
, grouping(okr.name) desc
, grouping(ss.name) desc

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Группировка с rollup в Oracle 18 июль 2011 01:34 #2358

  • Joker
  • Joker аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 46
  • Спасибо получено: 0
Да нет, с order by я уже пробовал во всех вариантах,
не выходит(-:. Тут нужно свежее решение,
а ничего в голову не приходит уже второй день.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Группировка с rollup в Oracle 18 июль 2011 01:36 #2359

  • Gubin
  • Gubin аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 42
  • Спасибо получено: 0
Дело не в order by , а в grouping(...) .

Так что-ли ?
order by
grouping(pi.name) desc , pi.name pin,
grouping(okr.name) desc, okr.name okrn,
grouping(ss.name) desc, ss.name ssn

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Группировка с rollup в Oracle 18 июль 2011 01:37 #2360

  • Joker
  • Joker аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 46
  • Спасибо получено: 0
Да именно так , спасибо)))
По последнему варианту он выдал мне все что нужно, в правильном порядке!
Огромнейшее спасибо!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1