2015-03-29 2 views
0

Я хотел бы знать, как это будет указано в SQL - «Какие режиссеры руководили более чем одним фильмом, а фильм был номинирован на более чем 2 вручения наград Академии. по убыванию».SQL-вопрос, пожалуйста, помогите

У меня в настоящее время есть это..что я знаю неверно.

SELECT DIRECTOR.dirID, MOVIE.mvTitle 
FROM DIRECTOR 
INNER JOIN 
MOVIE ON DIRECTOR.dirID=MOVIE.dirID 
ORDER BY noms>=2 DESC; 
+0

'ВЫБРАТЬ director.dirID, movie.mvTiltle режиссера INNER JOIN фильма ON director.dirID = movie.dirID где director.numOfMovies> 1 и movie.nom> = 2 ORDER BY movie.nom DESC' – bayblade567

+0

«Какие режиссеры руководили более чем одним фильмом, а фильм был номинирован на более чем 2 вручения наград Академии. Прикажите результаты Академии Awards по убыванию» - это меня смущает. Вы просите какого-нибудь режиссера, который руководил более чем одним фильмом и возвращал какой-либо фильм с более чем двумя номинациями, которые он направил? – Yatrix

+0

Дайте в качестве схемы ваших таблиц. СОВЕТ: используйте having(). Трудно написать полное решение без полной информации о таблице. –

ответ

0

Вы не добавили, где положение для проверки условий, то запрос будет:

SELECT director.dirID, movie.mvTiltle 
FROM director 
INNER JOIN movie ON director.dirID = movie.dirID 
WHERE director.numOfMovies > 1 
    and movie.nom >= 2 
ORDER BY noms DESC 
+2

Кто вам сказал, что у него есть режиссер.numOfMovies и movie.nom поля? –

+0

Я добавил режиссера.numOfMovies для этого ** режиссеров, направленных более одного фильма **, и я ** noms ** был указан в самом вопросе. и я сменил movies.nom на nom, это была ошибка. – bayblade567

0

Вы должны использовать WHERE Пунктом

SELECT DIRECTOR.dirID, MOVIE.mvTitle 
FROM DIRECTOR 
INNER JOIN MOVIE ON DIRECTOR.dirID = MOVIE.dirID 
WHERE DIRECTOR.dirID > 1 
AND MOVIE.noms > 2 
0
;with cte as (select d.dirid 
    from movie m 
    inner join director d on m.dirid=d.dirid 
    where noms >1 
    group by d.dirid 
    having count(*)>1) 
select cte.dirid,m.name,nos from cte 
inner join movie m on cte.dirid=m.dirid 
order by noms desc; 

что-то как это должно работать. Вот скрипка: http://sqlfiddle.com/#!6/9db91/1

+0

';' используется для ** завершения ** утверждения в стандартном SQL. Он не используется в начале заявления. И если вы считаете, что вам это нужно в T-SQL, прочитайте это: http://stackoverflow.com/questions/6938060/common-table-expression-why-semicolon –

+0

Да, я это знаю. http://stackoverflow.com/questions/6938060/common-table-expression-why-semicolon – Yatrix

Смежные вопросы