DUVIDA MATRIZ ASP.NET

JCMSIS 21/05/2012 15:04:23
#402399
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

TECLA 22/05/2012 09:57:39
#402432
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.
KERPLUNK 22/05/2012 10:01:51
#402434
Resposta escolhida
Bom, depende, como é a estrutura do seu banco?
JCMSIS 22/05/2012 11:09:38
#402447
As informações estão todas numa unica tabela
KERPLUNK 22/05/2012 11:12:24
#402448
Citação:

As informações estão todas numa unica tabela


Ok, mas como estão dispostas? Mostre a estrutura da tabela.
JCMSIS 22/05/2012 11:37:46
#402453
Estrutura Tabela :

Fornecedor
ValorUnit
Qtde
Total

Entendeu?
KERPLUNK 22/05/2012 11:46:25
#402457
Nesse caso, não tem jeito mesmo, vai ter que ser um union.
AJSO 22/05/2012 11:53:27
#402461
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.
JCMSIS 22/05/2012 15:12:43
#402479
Mas da pra usar Union na mesma tabela? Alguem tem algum exemplo?
KERPLUNK 23/05/2012 09:46:27
#402535
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
KERPLUNK 23/05/2012 10:14:32
#402536
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
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas