» Início » Desenvolvimento » Banco de dados e SQL » SQL Server 2005 T-SQL Tips: Concatenando e Agrupando
 
Avaliação: | Publicado em: 05/02/2008
SQL Server 2005 T-SQL Tips: Concatenando e Agrupando


Situação Fictícia

Para demonstrar como agrupar registros em uma única coluna delimitados por ponto é vírgula, utilizarei um cadastro de clientes e telefones. Cada cliente deverá ter pelo menos um telefone e no máximo quatro telefones. Os telefones podem ser de quatro tipos (Residencial, Celular, Trabalho e Outros). O objetivo será construir consultas que exibam o nome do cliente e seus telefones formatados e delimitados por ponto e vírgula em uma única coluna. O Script abaixo mostra a criação das tabelas utilizadas em um banco de testes.

Use Testes

-- Criação da tabela de Clientes
CREATE TABLE tblClientes (
 CliCodigo INT NOT NULL,
 CliNome VARCHAR(50) NOT NULL,
 CONSTRAINT PK_Cliente PRIMARY KEY (CliCodigo))

-- Criação da tabela de Telefones
CREATE TABLE tblTelefones (
 CliCodigo INT NOT NULL,
 TelTipo CHAR(1),
 TelDDD TINYINT,
 TelNumero CHAR(8),
 CONSTRAINT PK_Telefone PRIMARY KEY (CliCodigo, TelTipo),
 CONSTRAINT UQ_Telefone UNIQUE (TelDDD, TelNumero),
 CONSTRAINT CK_Telefone CHECK (TelTipo IN ('R','C','T','O')),
 CONSTRAINT FK_Telefone_Cliente FOREIGN KEY (CliCodigo) REFERENCES
  tblClientes (CliCodigo) ON DELETE CASCADE)

-- Inserção de novos clientes
INSERT INTO tblClientes (CliCodigo, CliNome) VALUES (1,'Edinaldo')
INSERT INTO tblClientes (CliCodigo, CliNome) VALUES (2,'Janaína')

-- Inserção de novos telefones
INSERT INTO tblTelefones VALUES (1,'R',61,'32264257')
INSERT INTO tblTelefones VALUES (1,'C',61,'78125540')
INSERT INTO tblTelefones VALUES (2,'R',61,'34687713')
INSERT INTO tblTelefones VALUES (2,'C',61,'84122945')
INSERT INTO tblTelefones VALUES (2,'O',61,'34687712')


Eh massa mais naum consigo instala tem como ajudar ::?? Pelo Amor de Deus MAIS SERIO Mermu ajuda aeee Se Pode=D

Fica Com Deus