>>Fammi capire, ad 1 ordine corrispondono più clienti?!
>>Non dovrebbe essere il contrario?
>
>Hai perfettamente ragione tu, ma io voglio che ad un ordine corrisponde
>un Cliente, ma lo stesso cliente può fare più ordini.
Appunto, non è quello che ho scritto io?
Dalla tabella clienti devi togliere la colonna CodiceOrdine, aggiungendo la colonna ClienteID alla tabella Ordini e definendo su quest'ultima un constraint di FOREIGN KEY:
USE tempdb;
CREATE TABLE dbo.Clienti(
ClienteID int NOT NULL PRIMARY KEY,
Nome varchar(10) NOT NULL
);
CREATE TABLE dbo.Ordini(
OrdineID int NOT NULL PRIMARY KEY,
ClienteID int NOT NULL,
Data datetime NOT NULL,
CONSTRAINT FK_Ordini_Clienti FOREIGN KEY(ClienteID)
REFERENCES dbo.Clienti(ClienteID)
);
INSERT dbo.Clienti VALUES(1, 'Lorenzo');
INSERT dbo.Clienti VALUES(2, 'Carmelo');
INSERT dbo.Ordini VALUES(10, 1, '20080101');
INSERT dbo.Ordini VALUES(20, 1, '20080102');
INSERT dbo.Ordini VALUES(30, 1, '20080103');
INSERT dbo.Ordini VALUES(40, 2, '20080201');
INSERT dbo.Ordini VALUES(50, 2, '20080202');
SELECT C.Nome, O.Data
FROM dbo.Clienti AS C
JOIN dbo.Ordini AS O
ON C.ClienteID = O.ClienteID;
/* Output:
Nome Data
---------- -----------------------
Lorenzo 2008-01-01 00:00:00.000
Lorenzo 2008-01-02 00:00:00.000
Lorenzo 2008-01-03 00:00:00.000
Carmelo 2008-02-01 00:00:00.000
Carmelo 2008-02-02 00:00:00.000
(5 row(s) affected)
*/
DROP TABLE dbo.Ordini, dbo.Clienti;
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org