>Ho il seguente problema:
>
>nella tabella 1 abbiamo i seguenti campi ( idcliente, nome, cognome,
>citta , idtelefono)
>nella tabella 2 abbiamo i seguenti campi (idtelefono, numero)
>
>Ho bisogno di inserire nella tabella 2 tutti i numeri telefonici
>riferiti ad un singolo cliente, quindi creo una query per l'inserimento
>del cliente con un idtelefono, per la query di inserimento dei
>numeri telefonici utilizzo quel idtelefono come identificatore
>e aggiungi i vari numeri:
>es. idtelefono numero
> 4 3331457789
> 4 3354417784
>
>e così via.
>Come faccio a recuperare tutti i numeri di telefono con i dati
>del cliente tramite una query.
Con una semplice JOIN (OUTER se ti serve far vedere comunque anche i clienti che non hanno i numeri di telefono).
Eccoti un semplice esempio:
USE tempdb;
GO
CREATE TABLE dbo.NumeriTelefono
(
IDTelefono int IDENTITY(1,1) NOT NULL
, IDCliente int NOT NULL
, Numero varchar(20) NOT NULL
, CONSTRAINT PK_dboNumeriTelefono PRIMARY KEY CLUSTERED
(
IDTelefono
)
)
GO
CREATE TABLE dbo.Clienti
(
IDCliente int IDENTITY(1,1) NOT NULL
, Nome varchar(30) NOT NULL
, Cognome varchar(30) NOT NULL
, CONSTRAINT PK_dboClienti PRIMARY KEY CLUSTERED
(
IDCliente
)
)
GO
-- popolo con valori di esempio
INSERT INTO dbo.Clienti (Nome, Cognome)
VALUES ('Alessandro', 'Alpi')
INSERT INTO dbo.Clienti (Nome, Cognome)
VALUES ('Vincenzo', 'Violante')
INSERT INTO dbo.Clienti (Nome, Cognome)
VALUES ('Michael', 'Denny')
INSERT INTO dbo.Clienti (Nome, Cognome)
VALUES ('Marco', 'Rossi')
GO
INSERT INTO dbo.NumeriTelefono (IDCliente, Numero)
VALUES (1, '0525123456789')
INSERT INTO dbo.NumeriTelefono (IDCliente, Numero)
VALUES (1, '0525123456788')
INSERT INTO dbo.NumeriTelefono (IDCliente, Numero)
VALUES (2, '0525123456787')
INSERT INTO dbo.NumeriTelefono (IDCliente, Numero)
VALUES (3, '0525123456786')
INSERT INTO dbo.NumeriTelefono (IDCliente, Numero)
VALUES (3, '0525123456785')
GO
SELECT
C.Nome
, C.Cognome
, COALESCE(N.Numero, 'Non disponibile')
FROM
dbo.Clienti C
LEFT JOIN dbo.NumeriTelefono N ON C.IDCliente = N.IDCliente
DROP TABLE dbo.Clienti
DROP TABLE dbo.NumeriTelefono
GO
Come vedi, ho cambiato il modello delle tue tabelle, andando a fare una relazione 1:N..
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org