Dúvida em consulta complicada, não tenho ideia de como
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..
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
Curtidas 0
Respostas
Marcus.magalhaes
05/08/2004
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,
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,
GOSTEI 0
Alesp84
05/08/2004
Droga, eu tinha esperança que desse para fazer :(
Mesmo se der, vai usar tanta subquery que nem deve compensa pela performance né..
Mesmo se der, vai usar tanta subquery que nem deve compensa pela performance né..
GOSTEI 0
Aroldo Zanela
05/08/2004
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.
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.
GOSTEI 0
Alesp84
05/08/2004
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..
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..
GOSTEI 0