powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Объединение двух сгруппированных запросов
10 сообщений из 10, страница 1 из 1
Объединение двух сгруппированных запросов
    #39940620
Филипп_777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, помогите, пожалуйста:

Две таблицы

Результат запроса с группировкой из первой таблицы:

Имя | СOUNT (Кол-во магазинов)
Иванов | 5

Результат выполнения запроса с группировкой по второй таблице

ИД Магазина | SUM (Сумма продаж)
4 | 12 000 рублей

Подскажите, пожалуйста, как объеденить эти два запроса с группировкой, что бы получить в результате

|Имя | СOUNT (Кол-во магазинов) | SUM (Сумма продаж) [/b] |
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940622
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп_777,

join on 5=4+1
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940623
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп_777,

нужен пример

есть --> получить

.....
stax
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940637
Филипп_777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, Вот
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940646
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп_777,

Самый банальный GROUP BY. Ас дизайном у тебя прокол. Если ФИО владельца совпадают то вполне возможно что "Федот, да не тот", так-что нужен ID владельца а не ФИО.

SY.
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940653
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп_777,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with t1 (id_mag,fio) as (
select 1,'Иванов' from dual union all
select 2,'Иванов' from dual union all
select 4,'Филипп' from dual union all
select 3,'Смирнов' from dual )
,t2 (id_mag,s) as (
select 1,200 from dual union all
select 2,200 from dual union all
select 3,300 from dual )
select fio,count(distinct(t1.id_mag)) cc_mag,sum(s) ssum
from t1,t2 where t2.id_mag(+)=t1.id_mag
group by fio
order by 1
/



.....
stax
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940663
Филипп_777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, Благодарю! Уточни, пожалуйста, что здесь происходит
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940689
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп_777,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
FIO         CC_MAG       SSUM
------- ---------- ----------
Иванов           2        400
Смирнов          1        300
Филипп           1

SQL> ed
Wrote file afiedt.buf

  1  with t1 (id_mag,fio) as (
  2  select 1,'Иванов' from dual union all
  3  select 2,'Иванов' from dual union all
  4  select 4,'Филипп' from dual union all
  5  select 3,'Смирнов' from dual )
  6  ,t2 (id_mag,s) as (
  7  select 1,200 from dual union all
  8  select 2,200 from dual union all
  9  select 3,300 from dual )
 10  select fio,count(distinct(t1.id_mag)) cc_mag,sum(s) ssum
 11  from t1,t2 where t2.id_mag=t1.id_mag
 12  group by fio
 13* order by 1
SQL> /

FIO         CC_MAG       SSUM
------- ---------- ----------
Иванов           2        400
Смирнов          1        300

SQL>



у Филлипа есть магазины без продаж

.....
stax
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940871
Филипп_777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, Получается это как аналог Right Join ?
...
Рейтинг: 0 / 0
Объединение двух сгруппированных запросов
    #39940882
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп_777
Stax, Получается это как аналог Right Join ?


почти

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SQL> with t1 (id_mag,fio) as (
  2  select 1,'Иванов' from dual union all
  3  select 2,'Иванов' from dual union all
  4  select 4,'Филипп' from dual union all
  5  select 3,'Смирнов' from dual )
  6  ,t2 (id_mag,s) as (
  7  select 1,200 from dual union all
  8  select 2,200 from dual union all
  9  select 3,300 from dual )
 10  select
 11    fio,count(distinct(t1.id_mag)) cc_mag,sum(s) ssum
 12  from t1 Left Join t2 on (t2.id_mag=t1.id_mag)
 13  group by fio
 14  order by 1
 15  /

FIO         CC_MAG       SSUM
------- ---------- ----------
Иванов           2        400
Смирнов          1        300
Филипп           1



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


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