UTILIZANDO PIVOT SQL SERVER
Bom dia,
Estou tentando utilizar PIVOT em sql server, mas estou com grandes dificuldades.
Vou explicar:
Preciso retornar a quantidades de produtos vendidos para cada mês e ano dos
últimos três meses.
Criei a seguinte query:
[txt-color=#0000f0] SELECT[/txt-color] P.Nome[txt-color=#0000f0] AS[/txt-color] Produto,[txt-color=#e80000]MONTH[/txt-color](V.Data) [txt-color=#0000f0]AS[/txt-color] Mes, [txt-color=#e80000]SUM[/txt-color](VI.Quantidade) [txt-color=#0000f0]AS[/txt-color] Qtde
[txt-color=#0000f0] FROM[/txt-color] Venda_Item VI
[txt-color=#0000f0]INNER JOIN[/txt-color] Venda V [txt-color=#0000f0]ON[/txt-color] V.Codigo = Vi.Venda
[txt-color=#0000f0]INNER JOIN[/txt-color] Produto P [txt-color=#0000f0]ON[/txt-color] P.Codigo = VI.Produto
[txt-color=#0000f0]WHERE[/txt-color] V.Data >= [txt-color=#e80000]DATEADD[/txt-color]([txt-color=#e80000]MONTH[/txt-color], -3, [txt-color=#e80000]GETDATE[/txt-color]())
AND [txt-color=#e80000]ISNULL[/txt-color](V.Cancelada, [ô]N[ô]) = [ô]N[ô]
[txt-color=#0000f0]GROUP BY[/txt-color] P.Nome,[txt-color=#e80000]MONTH[/txt-color](V.Data),[txt-color=#e80000]YEAR[/txt-color](V.Data)
PROBLEMA: Queria retornar os produtos como colunas, só que ao consultar na internet
vi apenas exemplos de PIVOT com valores fixos, mas nos meu caso é dinâmico. Ou seja, posso
ter 10 produtos ou 100.
Alguém poderia me orientar a respeito.
Desde já, agradeço muito.
Shippuden.
Estou tentando utilizar PIVOT em sql server, mas estou com grandes dificuldades.
Vou explicar:
Preciso retornar a quantidades de produtos vendidos para cada mês e ano dos
últimos três meses.
Criei a seguinte query:
[txt-color=#0000f0] SELECT[/txt-color] P.Nome[txt-color=#0000f0] AS[/txt-color] Produto,[txt-color=#e80000]MONTH[/txt-color](V.Data) [txt-color=#0000f0]AS[/txt-color] Mes, [txt-color=#e80000]SUM[/txt-color](VI.Quantidade) [txt-color=#0000f0]AS[/txt-color] Qtde
[txt-color=#0000f0] FROM[/txt-color] Venda_Item VI
[txt-color=#0000f0]INNER JOIN[/txt-color] Venda V [txt-color=#0000f0]ON[/txt-color] V.Codigo = Vi.Venda
[txt-color=#0000f0]INNER JOIN[/txt-color] Produto P [txt-color=#0000f0]ON[/txt-color] P.Codigo = VI.Produto
[txt-color=#0000f0]WHERE[/txt-color] V.Data >= [txt-color=#e80000]DATEADD[/txt-color]([txt-color=#e80000]MONTH[/txt-color], -3, [txt-color=#e80000]GETDATE[/txt-color]())
AND [txt-color=#e80000]ISNULL[/txt-color](V.Cancelada, [ô]N[ô]) = [ô]N[ô]
[txt-color=#0000f0]GROUP BY[/txt-color] P.Nome,[txt-color=#e80000]MONTH[/txt-color](V.Data),[txt-color=#e80000]YEAR[/txt-color](V.Data)
PROBLEMA: Queria retornar os produtos como colunas, só que ao consultar na internet
vi apenas exemplos de PIVOT com valores fixos, mas nos meu caso é dinâmico. Ou seja, posso
ter 10 produtos ou 100.
Alguém poderia me orientar a respeito.
Desde já, agradeço muito.
Shippuden.
Aqui ensina como fazer dinamicamente:
www.devmedia.com.br/pivot-no-sql-server-invertendo-linhas-e-colunas-em-um-exemplo-real/28318
www.devmedia.com.br/pivot-no-sql-server-invertendo-linhas-e-colunas-em-um-exemplo-real/28318
Citação::
Aqui ensina como fazer dinamicamente:
www.devmedia.com.br/pivot-no-sql-server-invertendo-linhas-e-colunas-em-um-exemplo-real/28318
JABA, muito obrigado pela sua ajuda.
Eu vi este post, mas como citei acima, estou com dificuldade em consiguir gerar está query.
Tentei gerar a query utilizando este post anteriormente, mas não consegui o retorno esperado.
Por isso criei este tópico, desculpa por não ter mencionado antes.
Vc teria um exemplo prático para me ajudar?
desde já, agradeço pela atenção.
Shippuden
social.technet.microsoft.com/wiki/pt-br/contents/articles/21245.t-sql-pivot-dinamico-em-varias-colunas.aspx
blogs.lessthandot.com/index.php/DataMgmt/DataDesign/dynamic-pivot-on-multiple-columns/
social.msdn.microsoft.com/Forums/sqlserver/en-US/76345f59-9148-442f-97de-da28d663406c/tsql-query-to-pivot-data?forum=transactsql
blogs.lessthandot.com/index.php/DataMgmt/DataDesign/dynamic-pivot-on-multiple-columns/
social.msdn.microsoft.com/Forums/sqlserver/en-US/76345f59-9148-442f-97de-da28d663406c/tsql-query-to-pivot-data?forum=transactsql
Faça seu login para responder