2 messaggi dal 03 luglio 2009
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.

Grazie a chiunque possa aiutarmi.
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

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
In primo piano

I più letti di oggi

Media
In evidenza
MISC