EXEC P_Tools$EliminaOggetto 'news','TB' EXEC P_Tools$EliminaOggetto 'cat_news','TB' GO CREATE TABLE news ( newsID INT IDENTITY(1,1) PRIMARY KEY, cat_newsID INT NOT NULL, titolo VARCHAR(255) NOT NULL, corpo VARCHAR(1000) NOT NULL, hits INT DEFAULT(0), data_creazione DATETIME DEFAULT(GETDATE()) ) GO CREATE TABLE cat_news ( cat_newsID INT IDENTITY(1,1) PRIMARY KEY, descrizione VARCHAR(255) ) GO ALTER TABLE [dbo].[news] ADD CONSTRAINT [FK_news_cat_news] FOREIGN KEY ( [cat_newsID] ) REFERENCES [dbo].[cat_news] ( [cat_newsID] ) GO --Annullo i messaggi del conteggio delle righe inserite SET NOCOUNT ON --Inserisco le categorie delle news INSERT INTO cat_news VALUES ('Tecnologia') INSERT INTO cat_news VALUES ('Musica') INSERT INTO cat_news VALUES ('Sport') --Inserisco le news INSERT INTO news VALUES (1,'Prima news sulla Tecnologia','Corpo della news',12,DEFAULT) INSERT INTO news VALUES (1,'Seconda news sulla Tecnologia','Corpo della news',1,DEFAULT) INSERT INTO news VALUES (1,'Terza news sulla Tecnologia','Corpo della news',142,DEFAULT) INSERT INTO news VALUES (2,'Prima news sulla Musica','Corpo della news',12,DEFAULT) INSERT INTO news VALUES (2,'Seconda news sulla Musica','Corpo della news',62,DEFAULT) INSERT INTO news VALUES (2,'Terza news sulla Musica','Corpo della news',11,DEFAULT) INSERT INTO news VALUES (3,'Prima news sullo Sport','Corpo della news',124,DEFAULT) INSERT INTO news VALUES (3,'Seconda news sullo Sport','Corpo della news',412,DEFAULT) INSERT INTO news VALUES (3,'Terza news sullo Sport','Corpo della news',142,DEFAULT) GO SELECT N3.descrizione AS Categoria, N1.titolo AS Titolo, N1.hits AS Hits FROM news N1 INNER JOIN cat_news N3 ON N3.cat_newsID = N1.cat_newsID WHERE N1.newsID IN ( SELECT TOP 1 N2.newsID --la prima news FROM news N2 WHERE N2.cat_newsID = N1.cat_newsID --per ogni categoria ORDER BY N2.hits DESC --che ha il maggior numero di visualizzazioni ) ORDER BY N3.cat_newsID, N1.hits DESC