salve,
mack wrote:
Salve a tutti,
sono nuovo del forum e spero di postare la domanda nel posto giusto....
Ho un problema con una query...
Ho la classica situazione autore
documento su 3 tabelle (relazione molti a molti scorporata).
Nella tabella autore ho anche specificato la singola qualifica (scrittore-regista-sceneggiatore ecc.).
Come posso estrarre il nome degli autori dividendoli per qualifica? Specifico che la qualifica è a codice e ho quindi necessità di introdurre degli alias.
non ho compreso il tuo problema...
ma partendo dall'esempio seguente,
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.Authors (
Id int NOT NULL PRIMARY KEY,
Nome varchar(15),
Qualifica varchar(15)
);
CREATE TABLE dbo.Books (
Id int NOT NULL PRIMARY KEY,
Nome varchar(30)
);
CREATE TABLE dbo.BooksAuthors (
IdAuthor int NOT NULL,
IdBook int NOT NULL
);
GO
INSERT INTO dbo.Authors VALUES ( 1, 'Pippo', 'Scrittore' );
INSERT INTO dbo.Authors VALUES ( 2, 'Pluto', 'Regista' );
INSERT INTO dbo.Authors VALUES ( 3, 'Topolino', 'Sceneggiatore' ); INSERT INTO dbo.Authors VALUES ( 4, 'Minnie', 'Scrittore' ); INSERT INTO dbo.Authors VALUES ( 5, 'QuiQuoQua', 'Regista' ); INSERT INTO dbo.Authors VALUES ( 6, 'Paperino', 'Scrittore' );
INSERT INTO dbo.Books VALUES ( 1, 'Manuale Giovani Marmotte' ); INSERT INTO dbo.Books VALUES ( 2, 'L''investigatore' );
INSERT INTO dbo.Books VALUES ( 3, 'Gli amici' );
INSERT INTO dbo.BooksAuthors VALUES ( 3, 2 );
INSERT INTO dbo.BooksAuthors VALUES ( 2, 2 );
INSERT INTO dbo.BooksAuthors VALUES ( 1, 2 );
INSERT INTO dbo.BooksAuthors VALUES ( 6, 1 );
INSERT INTO dbo.BooksAuthors VALUES ( 5, 1 );
INSERT INTO dbo.BooksAuthors VALUES ( 1, 3 );
INSERT INTO dbo.BooksAuthors VALUES ( 2, 3 );
INSERT INTO dbo.BooksAuthors VALUES ( 3, 3 );
INSERT INTO dbo.BooksAuthors VALUES ( 4, 3 );
INSERT INTO dbo.BooksAuthors VALUES ( 5, 3 );
INSERT INTO dbo.BooksAuthors VALUES ( 6, 3 );
GO
SELECT b.Nome AS [Libro], a.Nome AS [Autore], a.Qualifica
FROM dbo.Books b
JOIN dbo.BooksAuthors ba ON ba.IdBook = b.Id
JOIN dbo.Authors a ON a.Id = ba.IdAuthor
ORDER BY b.Nome;
GO
DROP TABLE dbo.BooksAuthors, dbo.Books, dbo.Authors;
--<-----------
Libro Autore Qualifica
----------------------------
-------------
-------------
Gli amici Pippo Scrittore
Gli amici Pluto Regista
Gli amici Topolino Sceneggiatore Gli amici Minnie Scrittore
Gli amici QuiQuoQua Regista
Gli amici Paperino Scrittore
L'investigatore Topolino Sceneggiatore L'investigatore Pluto Regista
L'investigatore Pippo Scrittore
Manuale Giovani Marmotte Paperino Scrittore
Manuale Giovani Marmotte QuiQuoQua Regista
che risultato intendi raggiungere?
saluti