Запрос в Openoffice

Автор roman456, 10 апреля 2013, 23:20

0 Пользователи и 1 гость просматривают эту тему.

roman456

Выборки:

· Определить любимого актера режиссера Балаяна.

· Выбрать имена актеров, в творческой биографии которых более 50% ролей назывались 'кушать подано'.

· Выбрать список пьес, в которых исполнители главных ролей менялись более 3 раз.

· Выбрать список актеров, которые находятся в "творческом простое" с начала 2000 г

Сделал все кроме 2ой, помогите пжл с написанием)
или порадуйте готовым запросом, сдать нужно в конце недели))

могу скинуть свою БД на почту

[вложение удалено Администратором]

VlhOwn

Ну, например так:

select actor
from (select actor, count(role) as total from theatre group by actor) as a
  join (select actor, count(role) as bon_appetite from theatre where role='кушать подано' group by actor) as b
  using (actor)
where total<2*bon_appetite

roman456

Цитата: VlhOwn от 11 апреля 2013, 13:33Ну, например так:

select actor
from (select actor, count(role) as total from theatre group by actor) as a
  join (select actor, count(role) as bon_appetite from theatre where role='кушать подано' group by actor) as b
  using (actor)
where total<2*bon_appetite

я сделал вот так вот SELECT "Фамилия", "тип роли", COUNT( * ) AS "s" FROM "должность" GROUP BY "Фамилия", "тип роли" HAVING ( ( SELECT "тип роли", COUNT( * ) AS "a" FROM "должность" WHERE "тип роли" = 'главная' GROUP BY "тип роли" ) ) > "s" / 2
НО в результате он выводит просто пустою табл, с колонками (Фамилия, тип роли, s)

VlhOwn

В выражении
( ( SELECT "тип роли", COUNT( * ) AS "a" FROM "должность" WHERE "тип роли" = 'главная' GROUP BY "тип роли" ) ) > "s" / 2
Вы сравниваете двухколоночную таблицу с числом. Какой результат хотите получить?

Выражение
SELECT "Фамилия", "тип роли", COUNT( * ) AS "s" FROM "должность" GROUP BY "Фамилия", "тип роли"
даст вам таблицу, показывающую, сколько ролей каждого типа сыграл каждый из актеров. Вы это хотели получить?