Torna al Thread

USE tempdb; GO CREATE TABLE Stadio ( Nome varchar(30) NOT NULL , Citta varchar(30) NOT NULL , Capienza int NOT NULL , CONSTRAINT PK_Stadio PRIMARY KEY CLUSTERED ( Nome ) ) GO INSERT INTO Stadio (Nome, Citta, Capienza) VALUES ('San Siro', 'Milano', 80000) INSERT INTO Stadio (Nome, Citta, Capienza) VALUES ('Delle Alpi', 'Torino', 70000) INSERT INTO Stadio (Nome, Citta, Capienza) VALUES ('Tardini', 'Parm', 30000) INSERT INTO Stadio (Nome, Citta, Capienza) VALUES ('San Paolo', 'Napoli', 70000) INSERT INTO Stadio (Nome, Citta, Capienza) VALUES ('Olimpico', 'Roma', 90000) GO CREATE TABLE Nazionale ( Paese varchar(30) NOT NULL , Continente varchar(20) NOT NULL , Categoria int NOT NULL , CONSTRAINT PK_Nazionale PRIMARY KEY CLUSTERED ( Paese ) ) GO INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Italia','Europa',1) INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Francia','Europa',1) INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Germania','Europa',1) INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Spagna','Europa',1) INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Portogallo','Europa',1) INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Brasile','America',1) INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Argentina','America',1) INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Giappone','Asia',1) INSERT INTO Nazionale (Paese, Continente, Categoria) VALUES ('Russia','Asiz',1) GO CREATE TABLE Incontro ( NomeStadio varchar(30) NOT NULL , DataOra datetime NOT NULL , Squadra1 varchar(30) NOT NULL , Squadra2 varchar(30) NOT NULL , CONSTRAINT PK_Incontro PRIMARY KEY CLUSTERED ( NomeStadio , DataOra ) ) GO INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('San Siro', '20990701', 'Italia', 'Francia') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('Olimpico', '20990710', 'Italia', 'Spagna') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('Tardini', '20990720', 'Portogallo', 'Italia') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('San Paolo', '20050701', 'Italia', 'Germania') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('San Siro', '20080330', 'Italia', 'Brasile') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('San Paolo', '20080330', 'Spagna', 'Argentina') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('Delle Alpi', '20080330', 'Francia', 'Portogallo') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('Tardini', '20080410', 'Francia', 'Brasile') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('Olimpico', '20080420', 'Argentina', 'Brasile') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('Delle Alpi', '20990701', 'Spagna', 'Argentina') INSERT INTO Incontro (NomeStadio, DataOra, Squadra1, Squadra2) VALUES ('Delle Alpi', '20990730', 'Spagna', 'Italia') GO --SELECT * FROM Stadio /* Nome Citta Capienza ------------------------------ ------------------------------ ----------- Delle Alpi Torino 70000 Olimpico Roma 90000 San Paolo Napoli 70000 San Siro Milano 80000 Tardini Parm 30000 */ --SELECT * FROM Nazionale /* Paese Continente Categoria ------------------------------ -------------------- ----------- Argentina America 1 Brasile America 1 Francia Europa 1 Germania Europa 1 Giappone Asia 1 Italia Europa 1 Portogallo Europa 1 Russia Asiz 1 Spagna Europa 1 */ --SELECT * FROM Incontro ORDER BY DataOra /* NomeStadio DataOra Squadra1 Squadra2 ------------------------------ ----------------------- ------------------------------ ------------------------------ San Paolo 2005-07-01 00:00:00.000 Italia Germania San Paolo 2008-03-30 00:00:00.000 Spagna Argentina San Siro 2008-03-30 00:00:00.000 Italia Brasile Delle Alpi 2008-03-30 00:00:00.000 Francia Portogallo Tardini 2008-04-10 00:00:00.000 Francia Brasile Olimpico 2008-04-20 00:00:00.000 Argentina Brasile Delle Alpi 2099-07-01 00:00:00.000 Spagna Argentina San Siro 2099-07-01 00:00:00.000 Italia Francia Olimpico 2099-07-10 00:00:00.000 Italia Spagna Tardini 2099-07-20 00:00:00.000 Portogallo Italia Delle Alpi 2099-07-30 00:00:00.000 Spagna Italia */ -- RICHIESTA 1 -- trovare le squadre che devono ancora affrontare l'Italia in uno stadio diverso da quello di Roma -- supponiamo che la data di oggi sia 30/03/2008 (20080330) SELECT CASE WHEN Squadra1 = 'Italia' THEN Squadra2 ELSE Squadra1 END AS Squadra FROM Incontro WHERE (Squadra1 = 'Italia' OR Squadra2 = 'Italia') AND NomeStadio <> 'Olimpico' AND DataOra >= '20080330' -- RICHIESTA 2 -- selezionare le partite di oggi in cui giocano squadre di continenti diversi SELECT I.* , N1.Continente , N2.Continente FROM Incontro AS I JOIN Nazionale AS N1 ON N1.Paese = I.Squadra1 JOIN Nazionale AS N2 ON N2.Paese = I.Squadra2 WHERE I.DataOra >= '20080330' AND I.DataOra < '20080331' AND N1.Continente <> N2.Continente -- pulizia DROP TABLE Incontro DROP TABLE Stadio DROP TABLE Nazionale GO
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5