Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Дополнить запрос (изменить). / 3 сообщений из 3, страница 1 из 1
23.04.2018, 21:55
    #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
24.04.2018, 08:25
    #39635119
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дополнить запрос (изменить).
Kira Mitt,
21342880

.....
stax
...
Рейтинг: 0 / 0
24.04.2018, 08:45
    #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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Дополнить запрос (изменить). / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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