Ciao a tutti!
Dovrei creare su Sql Server una vista che selezioni dalla tabella TITOLI la colonna title_id e dalla tabella AUTORI la colonna au_id presenti in un database riguardante dei libri.
Il problema è che alcuni titoli presentano più autori...
Con questa query infatti si nota che:
SELECT dbo.titles.title_id, dbo.authors.au_id
FROM dbo.authors INNER JOIN
dbo.titleauthor ON dbo.authors.au_id = dbo.titleauthor.au_id INNER JOIN
dbo.titles ON dbo.titleauthor.title_id = dbo.titles.title_id
ORDER BY dbo.titles.title_id
TABELLA:
title_id au_id
1 || 40975
1 || 22321
1 || 15712
Ora facendo questa query trovo una vista che mi da il numero di autori per ogni titolo:
SELECT dbo.titles.title_id, COUNT(dbo.authors.au_id) AS Expr1
FROM dbo.authors INNER JOIN
dbo.titleauthor ON dbo.authors.au_id = dbo.titleauthor.au_id INNER JOIN
dbo.titles ON dbo.titleauthor.title_id = dbo.titles.title_id
GROUP BY dbo.titles.title_id
TABELLA:
title_id Expr1
1 || 3
2 || 2
3 || 2
4 || 3
Il mio obiettivo però sarebbe quello di riuscire a concatenare le stringhe di au_id degli autori che hanno scritto lo stesso libro per fare una tabella di questo tipo:
title_id Expr1
1 || au_id(Iautore)-au_id(II autore)-au_id(III autore)
2 || au_id(Iautore)-au_id(II autore)
3 || au_id(Iautore)-au_id(II autore)
4 || au_id(Iautore)-au_id(II autore)-au_id(III autore)
come posso fare?!