Я изо всех сил пытаюсь создать оператор в схеме снежинки. Мне нужно показать список всех продуктов и связанных треков, а также включить в каждую строку список имен авторов песен и проценты владения, например. добавьте один столбец, который выглядит так: «Сэм Смит (50,00%), Салли Симпсон (25,00%), Джон Чен (25,00%)». Мои таблицы:
Table: PRODUCT -PRODUCT_ID -ALBUM_ARTIST -ALBUM_TITLE
Table: SONGWRITER -SONGWRITER_ID -FIRSTNAME -LASTNAME
Table: SONG_SONGWRITER -SONGWRITER_ID -TRACK_ID -OWNERSHIP_SHARE
Table: TRACK -TRACK_ID -PRODUCT_ID -TRACK_ARTIST |TRACK_NAME
Я знаю, что мне нужно объединить (и соединить) таблицы SONG_SONGWRITER и SONGWRITER, но я очень растерялся из-за нескольких объединений, необходимых для отображения продуктов и треков.
Я пробовал (и потерпел неудачу):
SELECT prod.*, tra.TRACK_NAME,(SELECT (SELECT ','+ writer.FIRSTNAME +' ' +writer.LASTNAME + '(' + FORMAT(ssw.OWNERSHIP_SHARE,'P2') + ')' FROM SONGWRITER writer INNER JOIN SONG_SONGWRITER ssw ON ssw.SONGWRITER_ID=writer.SONGWRITER_ID FOR XML PATH ('')))
FROM PRODUCT prod
INNER JOIN TRACK tra
ON tra.PRODUCT_ID=prod.PRODUCT_ID
ORDER BY tra.SEQUENCE;
Что касается ожидаемого результата, он должен вернуть что-то вроде этого:
PRODUCT_ID | АЛЬБОМ_ИСПОЛНИТЕЛЬ | АЛЬБОМ_TITLE | ТРЕК_ИМЯ | ВЛАДЕНИЕ
1 | Мясной рулет | летучая мышь из ада | летучая мышь из ада | Мясной рулет (50%), Джонни, автор песен (50%
Кто-нибудь может помочь?