Я должен написать запрос для этого оператора:
Перечислите имена покупателей и названия альбомов для случаев, когда покупатель купил весь альбом (т. е. все треки в альбоме).
Я знаю, что должен использовать разделение.
Вот мой ответ, но я получаю странные синтаксические ошибки, которые не могу решить.
SELECT
R1.FirstName
,R1.LastName
,R1.Title
FROM (Customer C, Invoice I, InvoiceLine IL, Track T, Album Al) AS R1
WHERE
C.CustomerId=I.CustomerId
AND I.InvoiceId=IL.InvoiceId
AND T.TrackId=IL.TrackId
AND Al.AlbumId=T.AlbumId
AND NOT EXISTS (
SELECT
R2.Title
FROM (Album Al, Track T) AS R2
WHERE
T.AlbumId=Al.AlbumId
AND R2.Title NOT IN (
SELECT R3.Title
FROM (Album Al, Track T) AS R3
WHERE
COUNT(R1.TrackId)=COUNT(R3.TrackId)
)
);
ОШИБКА: misuse of aggregate function COUNT()
Схему базы данных можно найти здесь
( SELECT R2.Title FROM (Album Al, Track T) AS R2
кажется мне взволнованным. Вы собираетесь сделать кросс-соединение между альбомом и треком? - person xQbert   schedule 19.05.2016misuse of aggregate function COUNT()
@Aaron D - person RedHood148   schedule 19.05.2016INTERSECT
. Я получаю правильный ответ, но в этом запросе я не могу получить имена клиентов в результате. @xQbert - person RedHood148   schedule 19.05.2016