DUVIDA MATRIZ ASP.NET
Preciso montar uma matriz com os dados do meu banco da seguinte forma:
Fornecedor 1 Fornecedor 2 Fornecedor 3
Valor Unit 0 0 0
Qtde 0 0 0
Total 0 0 0
Alguma sugestão?
Obs. Todas Informações estão no BD. SQL - Projeto Asp.Net + VB
Fornecedor 1 Fornecedor 2 Fornecedor 3
Valor Unit 0 0 0
Qtde 0 0 0
Total 0 0 0
Alguma sugestão?
Obs. Todas Informações estão no BD. SQL - Projeto Asp.Net + VB
Para montar a consulta, sera necessario escrever 3 queries, uma para cada tipo de informacao (valor, qtde e total) sendo que elas serao interligadas por uma instrucao Union.
Bom, depende, como é a estrutura do seu banco?
As informações estão todas numa unica tabela
Citação:As informações estão todas numa unica tabela
Ok, mas como estão dispostas? Mostre a estrutura da tabela.
Estrutura Tabela :
Fornecedor
ValorUnit
Qtde
Total
Entendeu?
Fornecedor
ValorUnit
Qtde
Total
Entendeu?
Nesse caso, não tem jeito mesmo, vai ter que ser um union.
Caro JCMSIS
Uma solução por meio de Procedsure é utilizar o PIVOT e UNPIVOT do SQL é exatamente o resultado que de fato precisa, só uma resalva com relação a performance.
Um exemplo bem simples para isso
SELECT TotalDiasTrabalho, AVG(CustoOperacional) AS Custos
FROM Producao.IDProduto
GROUP BY TotalDiasTrabalho
Resultado
TotalDiasTrabalho Custos
0 5.0885
1 223.88
2 359.1082
4 949.4105
Nenhum produto está definido com três TotalDiasTrabalho.
Boa Sorte.
Uma solução por meio de Procedsure é utilizar o PIVOT e UNPIVOT do SQL é exatamente o resultado que de fato precisa, só uma resalva com relação a performance.
Um exemplo bem simples para isso
SELECT TotalDiasTrabalho, AVG(CustoOperacional) AS Custos
FROM Producao.IDProduto
GROUP BY TotalDiasTrabalho
Resultado
TotalDiasTrabalho Custos
0 5.0885
1 223.88
2 359.1082
4 949.4105
Nenhum produto está definido com três TotalDiasTrabalho.
Boa Sorte.
Mas da pra usar Union na mesma tabela? Alguem tem algum exemplo?
Citação:Mas da pra usar Union na mesma tabela? Alguem tem algum exemplo?
Sim, pode usar union com a mesma tabela:
Select (select sum(qtde) from tabela where fornecedor = [ô]fornecedor 1[ô] group by fornecedor) Fornecedor1,
(select sum(qtde) from tabela where fornecedor = [ô]fornecedor 2[ô] group by fornecedor) Fornecedor2,
(select sum(qtde) from tabela where fornecedor = [ô]fornecedor 3[ô] group by fornecedor) Fornecedor3
Union
Select (select avg(valorunit) from tabela where fornecedor = [ô]fornecedor 1[ô] group by fornecedor) Fornecedor1,
(select avg(valorunit) from tabela where fornecedor = [ô]fornecedor 2[ô] group by fornecedor) Fornecedor2,
(select avg(valorunit) from tabela where fornecedor = [ô]fornecedor 3[ô] group by fornecedor) Fornecedor3
Citação:Mas da pra usar Union na mesma tabela? Alguem tem algum exemplo?
Sim, pode usar union com a mesma tabela:
Select (select sum(qtde) from tabela where fornecedor = [ô]fornecedor 1[ô] group by fornecedor) Fornecedor1,
(select sum(qtde) from tabela where fornecedor = [ô]fornecedor 2[ô] group by fornecedor) Fornecedor2,
(select sum(qtde) from tabela where fornecedor = [ô]fornecedor 3[ô] group by fornecedor) Fornecedor3
Union
Select (select avg(valorunit) from tabela where fornecedor = [ô]fornecedor 1[ô] group by fornecedor) Fornecedor1,
(select avg(valorunit) from tabela where fornecedor = [ô]fornecedor 2[ô] group by fornecedor) Fornecedor2,
(select avg(valorunit) from tabela where fornecedor = [ô]fornecedor 3[ô] group by fornecedor) Fornecedor3
Tópico encerrado , respostas não são mais permitidas