Torna al Thread

USE tempdb; CREATE TABLE dbo.TB_DATI( COD_CLIENTE int NOT NULL, NOMINATIVO varchar(12) NOT NULL, INDIRIZZO varchar(10) NOT NULL, CONSTRAINT PK_DATI PRIMARY KEY (COD_CLIENTE) ); CREATE TABLE dbo.TB_TELEFONO( COD_CLIENTE int NOT NULL, TIPO_TEL char(2) NOT NULL, PREF_STATO varchar(5) NOT NULL, PREFISSO varchar(5) NOT NULL, NUMERO varchar(10) NOT NULL, CONSTRAINT PK_TELEFONO PRIMARY KEY (COD_CLIENTE, TIPO_TEL), CONSTRAINT FK_TELEFONO_DATI FOREIGN KEY(COD_CLIENTE) REFERENCES dbo.TB_DATI(COD_CLIENTE) ); INSERT dbo.TB_DATI VALUES (1, 'nominativo1','indirizzo1'); INSERT dbo.TB_DATI VALUES (2, 'nominativo2','indirizzo2'); INSERT dbo.TB_DATI VALUES (3, 'nominativo3','indirizzo3'); INSERT dbo.TB_TELEFONO VALUES (1, 'CE','0039','123','123456'); INSERT dbo.TB_TELEFONO VALUES (1, 'CA','0039','0522','123456'); INSERT dbo.TB_TELEFONO VALUES (1, 'LA','0039','0522','234567'); INSERT dbo.TB_TELEFONO VALUES (2, 'CE','0039','123','1234555'); INSERT dbo.TB_TELEFONO VALUES (2, 'CA','0039','059','123456'); SELECT COD_CLIENTE , NOMINATIVO , INDIRIZZO , STUFF( ( SELECT ';' + CAST(TIPO_TEL + PREF_STATO + PREFISSO + NUMERO AS VARCHAR(MAX)) AS [text()] FROM dbo.TB_TELEFONO AS T WHERE T.COD_CLIENTE = D.COD_CLIENTE FOR XML PATH('') ), 1, 1, '') AS NumeriTelefono FROM dbo.TB_DATI AS D; /* Output: COD_CLIENTE NOMINATIVO INDIRIZZO NumeriTelefono ----------- ------------ ---------- -------------------------------------------------- 1 nominativo1 indirizzo1 CA00390522123456;CE0039123123456;LA00390522234567 2 nominativo2 indirizzo2 CA0039059123456;CE00391231234555 3 nominativo3 indirizzo3 NULL (3 row(s) affected) */ DROP TABLE dbo.TB_TELEFONO, dbo.TB_DATI;
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5