2013-12-06 3 views
1

У меня есть: Таблица А с Movie Name, Movie ID Таблица B с Movie ID, Штрих-код (один фильм может иметь несколько штрих-кодов) Таблица C с Rentals клиентов, которая имеет штрих-код, Пользовательский ИД.граф Уникальный на двух полях с Присоединитесь

Я пытаюсь подсчитать общую стоимость аренды для каждого фильма. Я хочу считать уникальные имена фильмов (а не штрих-коды) для всех клиентов. Если два клиента арендуют один и тот же фильм, его следует считать дважды. Если один и тот же клиент дважды снимает один и тот же фильм (независимо от штрих-кода), его следует учитывать как один раз.

Мой код прямо сейчас выглядит следующим образом:

SELECT movie.NAME, 
    count(UNIQUE movie_rental.barcode) 
FROM movie_barcode 
INNER JOIN Movie_Rentals 
    ON movie_barcode.barcode = Movie_rentals.barcode 
INNER JOIN movie 
    ON movie_barcode.movie_number = movie.movie_number 
GROUP BY movie.NAME; 

Я использую Oracle.

Просьба сообщить.

+3

использование '' DISTINCT' не Unique' –

ответ

1

Попробуйте

SELECT movie.NAME, COUNT(DISTINCT movie_rental.barcode) 
FROM movie_barcode 
INNER JOIN Movie_Rentals ON movie_barcode.barcode = Movie_rentals.barcode 
INNER JOIN movie ON movie_barcode.movie_number = movie.movie_number 
GROUP BY movie.NAME; 
Смежные вопросы