Dúvida em consulta complicada, não tenho ideia de como

05/08/2004

0

Boa noite pessoal

Tenho 2tabelas simples relacionadas bunitinhas(script abaixo)..

Gostaria de saber como eu poderia fazer ou como vocês fariam uma consulta para exibir os dados dessas tabelas da seguinte forma:

Nom_Cli - End_Cli - Data1 - Data2 - Data3 - Data4 - Data5 - Valor1 - Valor2 - Valor3 - Valor4 - Valor5

Sendo Data1...DataN, onde N fosse o maior número historicos encontrados por um cliente..

CREATE TABLE Cliente(
  ID_Cliint Primary Key,
  Nom_Clichar(30) NOT NULL,
  End_Clichar(30)  
)
INSERT INTO Cliente VALUES (1,´Alexandre´,´Rua 1, N 1´)
INSERT INTO Cliente VALUES (2,´Roberto´,´Rua Que sobe, N 0´)
INSERT INTO Cliente VALUES (3,´Márcia´,´Av Paulista, N 1111´)

CREATE TABLE Historico(
  ID_Histint Primary Key,
  ID_Cliint NOT NULL,
  Datadatetime,
  Valordecimal(10,2),
  Constraint FK_Historico Foreign Key (ID_Cli) References Cliente(ID_Cli)
)
INSERT INTO Historico VALUES (1,1,´08/05/2004´,40.00)
INSERT INTO Historico VALUES (2,1,´08/05/2004´,15.00)
INSERT INTO Historico VALUES (3,1,´08/05/2004´,23.10)
INSERT INTO Historico VALUES (4,1,´08/05/2004´,20.01)
INSERT INTO Historico VALUES (5,1,´08/05/2004´,25.00)
INSERT INTO Historico VALUES (6,2,´08/05/2004´,100.00)
INSERT INTO Historico VALUES (7,2,´08/05/2004´,500.50)
INSERT INTO Historico VALUES (8,2,´08/05/2004´,1.00)
INSERT INTO Historico VALUES (9,2,´08/05/2004´,5.00)
INSERT INTO Historico VALUES (10,2,´08/05/2004´,15.00)
INSERT INTO Historico VALUES (11,3,´08/05/2004´,20.00)
INSERT INTO Historico VALUES (12,3,´08/05/2004´,0.10)
INSERT INTO Historico VALUES (13,3,´08/05/2004´,1.99)
INSERT INTO Historico VALUES (14,3,´08/05/2004´,2.30)
INSERT INTO Historico VALUES (15,3,´08/05/2004´,1500.00)

SELECT C.Nom_Cli, C.End_Cli, H.Data, H.Valor
FROM Cliente C JOIN Historico H ON H.ID_cli = C.ID_Cli



Alesp84

Alesp84

Responder

Posts

05/08/2004

Marcus.magalhaes

Boa noite Ale,

Vc quer q o SQL retorne os dados como se fosse uma planilha (lado a lado), não tem como, pelo menos q eu saiba, isso vc só conseguira tratar na aplicação, que é seu front end.

Att,


Responder

05/08/2004

Alesp84

Droga, eu tinha esperança que desse para fazer :(
Mesmo se der, vai usar tanta subquery que nem deve compensa pela performance né..


Responder

05/08/2004

Aroldo Zanela

Colega,

Sim é possível fazer utilizando Transact-SQL, mas realmente a performance vai ser bastante degradada. Ao meu ver, a melhor opção seria utilizar o Crystal Reports para obter o resultado desejado com uma performance aceitável.
Como o assunto é bem propagado na Web, basta você procurar por ´crosstab sql server´ no google que retorna muitas fontes.


Responder

06/08/2004

Alesp84

O intuito final é gerar um arquivo texto para uma gráfica..
Eu faço no front-end isso, mas seria mais pratica se os dados viessem ja do sql formatado :D seria uma mão na roda..
Mas vou me informar sobre crosstab

Valeu..


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar