powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Итог основной таблицы
6 сообщений из 6, страница 1 из 1
Итог основной таблицы
    #39310921
jackjack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, можно ли как-то к таблице типа такой:
select maker, amount from product where maker='a'

добавить сумму по полю amount? Пробовал через union, назвав первую таблицу tabl - ругается

Хотелось бы получить что-то такое :
| maker | | amount |
| a | | 5. |
| a. | | 7. |
| Итог| | 12 |
group by нельзя так как сама таблица нужна полная
Спасибо!
...
Рейтинг: 0 / 0
Итог основной таблицы
    #39310922
jackjack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавить where в запрос union тоже пойдет, так как первая таблица очень сложная, и там куча условий и joinов
...
Рейтинг: 0 / 0
Итог основной таблицы
    #39310924
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jackjackgroup by нельзя так как сама таблица нужна полная


Ну так и нельзя:

Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
select  case grouping(rowid)
          when 0 then job
          else 'TOTAL FOR ' || job
        end job,
        sum(sal) sal,
        empno,
        deptno,
        comm,
        hiredate
  from  emp
  group by grouping sets((job),(job,rowid,empno,deptno,comm,hiredate))
  order by emp.job,
           sal
/

JOB                        SAL      EMPNO     DEPTNO       COMM HIREDATE
------------------- ---------- ---------- ---------- ---------- ---------
ANALYST                   3000       7788         20            19-APR-87
ANALYST                   3000       7902         20            03-DEC-81
TOTAL FOR ANALYST         6000
CLERK                      800       7369         20            17-DEC-80
CLERK                      950       7900         30            03-DEC-81
CLERK                     1100       7876         20            23-MAY-87
CLERK                     1300       7934         10            23-JAN-82
TOTAL FOR CLERK           4150
MANAGER                   2450       7782         10            09-JUN-81
MANAGER                   2850       7698         30            01-MAY-81
MANAGER                   2975       7566         20            02-APR-81

JOB                        SAL      EMPNO     DEPTNO       COMM HIREDATE
------------------- ---------- ---------- ---------- ---------- ---------
TOTAL FOR MANAGER         8275
TOTAL FOR PRESIDENT       5000
PRESIDENT                 5000       7839         10            17-NOV-81
SALESMAN                  1250       7521         30        500 22-FEB-81
SALESMAN                  1250       7654         30       1400 28-SEP-81
SALESMAN                  1500       7844         30          0 08-SEP-81
SALESMAN                  1600       7499         30        300 20-FEB-81
TOTAL FOR SALESMAN        5600

19 rows selected.

SQL> 



SY.
...
Рейтинг: 0 / 0
Итог основной таблицы
    #39310957
jackjack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,

т. е. никак нельзя сделать общие итоги?
...
Рейтинг: 0 / 0
Итог основной таблицы
    #39310982
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jackjackSY,

т. е. никак нельзя сделать общие итоги?
GROUP BY CUBE
...
Рейтинг: 0 / 0
Итог основной таблицы
    #39310996
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jackjackт. е. никак нельзя сделать общие итоги?

Oбщий итог, а не общие итоги, как я понимаю. Кури доку по grouping sets:

Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
select  case
          when grouping(job) = 1 then 'TOTAL FOR ALL JOBS'
          when grouping(rowid) = 0 then job
          else 'TOTAL FOR ' || job
        end job,
        sum(sal) sal,
        empno,
        deptno,
        comm,
        hiredate
  from  emp
  group by grouping sets((),(job),(job,rowid,empno,deptno,comm,hiredate))
  order by emp.job nulls last,
           sal
/

JOB                        SAL      EMPNO     DEPTNO       COMM HIREDATE
------------------- ---------- ---------- ---------- ---------- ---------
ANALYST                   3000       7788         20            19-APR-87
ANALYST                   3000       7902         20            03-DEC-81
TOTAL FOR ANALYST         6000
CLERK                      800       7369         20            17-DEC-80
CLERK                      950       7900         30            03-DEC-81
CLERK                     1100       7876         20            23-MAY-87
CLERK                     1300       7934         10            23-JAN-82
TOTAL FOR CLERK           4150
MANAGER                   2450       7782         10            09-JUN-81
MANAGER                   2850       7698         30            01-MAY-81
MANAGER                   2975       7566         20            02-APR-81

JOB                        SAL      EMPNO     DEPTNO       COMM HIREDATE
------------------- ---------- ---------- ---------- ---------- ---------
TOTAL FOR MANAGER         8275
PRESIDENT                 5000       7839         10            17-NOV-81
TOTAL FOR PRESIDENT       5000
SALESMAN                  1250       7521         30        500 22-FEB-81
SALESMAN                  1250       7654         30       1400 28-SEP-81
SALESMAN                  1500       7844         30          0 08-SEP-81
SALESMAN                  1600       7499         30        300 20-FEB-81
TOTAL FOR SALESMAN        5600
TOTAL FOR ALL JOBS       29025

20 rows selected.

SQL> 



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


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