powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Дополнить запрос (изменить).
3 сообщений из 3, страница 1 из 1
Дополнить запрос (изменить).
    #39635045
Kira Mitt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос, определяющий самый популярный фильм месяца.
Код запроса:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select distinct RESULT
from (select count(*)
over (partition by d.filmid),
upper (f.namef) as RESULT
from film f,
dogovor d
where f.filmid = d.filmid
and to_char (d.vidacha,'MM') = '01'
order by count(*)
over (partition by d.filmid) desc)
where rownum < 2;



Задача:
Изменить запрос так, чтобы вместе с популярным фильмом показывался доход (т.е. суммируем все ((d.vozvat-d.vidacha)*f.stoimost_prok) с тех же строк, по которым считался count).
Добавить ввод месяца (через амперсанд &).
...
Рейтинг: 0 / 0
Дополнить запрос (изменить).
    #39635119
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kira Mitt,
21342880

.....
stax
...
Рейтинг: 0 / 0
Дополнить запрос (изменить).
    #39635124
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kira Mitt,

Код: 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.
SQL> ed
Wrote file afiedt.buf

  1  with dogovor(filmid,client_id,vidacha,vozvrat) as (
  2    select 1,1,date '2017-01-30',date '2017-02-22' from dual union all
  3    select 1,2,date '2017-01-20',date '2017-01-20' from dual union all
  4    select 1,3,date '2018-01-15',date '2018-03-16' from dual union all
  5    select 1,4,date '2017-02-20',date '2018-02-02' from dual union all
  6    select 2,1,date '2010-01-20',date '2018-04-01' from dual
  7  )
  8  ,film (filmid,namef,stoimost_prok) as (
  9    select 1,'Операция Ы',10 from dual union all
 10    select 2,'Avatar',15 from dual )
 11  --
 12  select
 13    RESULT,"доход"
 14  from (
 15    select
 16        upper (f.namef) as RESULT
 17       ,(sum(least(last_day(vidacha),vozvrat)-vidacha+1) over (partition by d.filmid))*stoimost_prok  "доход"
 18    from film f,dogovor d
 19    where f.filmid = d.filmid and to_char (d.vidacha,'MM') = '01'
 20    order by count(*) over (partition by d.filmid) desc)
 21* where rownum < 2
SQL> /

RESULT          доход
---------- ----------
ОПЕРАЦИЯ Ы        200

SQL>




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


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