Usuário com melhor resposta
Posso ter duas colunas a serem agregadas numa PIVOT?

Pergunta
-
Eu desenvolvi essa query
select PDV,SERPDV, [01],[02],[03],[04],[05],[06],[07],[08],[09],[10],
[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],
[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31]
from (select PDV,SERPDV, SUBSTRING(EMISSAO,7,2) as emissao, round(SUM(VALBRUT),2) as VALOR from TAB1
INNER JOIN TAB2 ON SERIE = PDV
where NOME = 'ATIVO'
AND SUBSTRING(EMISSAO,1,6) = '201703'
GROUP BY PDV,SERPDV,EMISSAO) SQ
PIVOT (SUM(VALOR) FOR emissao in ([01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31])) AS pt
mas eu quero adicionar mais uma coluuna COUNT(DOC)as QTDE, cujo resultado deve ser mostrado em [01T],[02T],[03T]... [31T]
select PDV,SERPDV, [01],[01T],[02],[02T],[03], [03T],[04], [04T],[05],[05T],[06],[06T],[07],[07T],[08],[08T],[09],[09T],[10],[10T],[11],[11T],[12],[12T],[13],[13T],[14],[14T],[15],[15T],[16],[16T],[17],[17T],[18],[18T],[19],[19T],[20],[20T],
[21],[21T],[22],[22T],[23],[23T],[24],[24T],[25],[25T],[26],[26T],[27],[27T],[28],[28T],[29],[29T],[30],[30T],
[31],[31T] from
(select PDV,SERPDV, SUBSTRING(EMISSAO,7,2) as emissao, SUM(VALBRUT) as VALOR, COUNT(DOC)as QTDE
from TAB1 INNER JOIN TAB2 ON SERIE = PDV where NOME = 'ATIVO'
AND SUBSTRING(EMISSAO,1,6) = '201703'
GROUP BY PDV,SERPDV,EMISSAO) SQ
PIVOT (SUM(VALOR) FOR emissao in
([01],[01T],[02],[02T],[03], [03T],[04], [04T],[05],[05T],[06],[06T],[07],[07T],[08],[08T],[09],[09T],[10],[10T],
[11],[11T],[12],[12T],[13],[13T],[14],[14T],[15],[15T],[16],[16T],[17],[17T],[18],[18T],[19],[19T],[20],[20T],
[21],[21T],[22],[22T],[23],[23T],[24],[24T],[25],[25T],[26],[26T],[27],[27T],[28],[28T],[29],[29T],[30],[30T],
[31],[31T])) AS pt
Alguem poderia me ajudar?
Respostas
Todas as Respostas
-
-
-
-
Deleted
- Sugerido como Resposta Junior Galvão - MVPMVP domingo, 2 de abril de 2017 00:54
-
-
-
-
Boa Tarde,
Eu fiz os testes conforme o código #2
A proposta da query é somar a quantidade de documentos e seus respectivos valores para determinada empresa, pdv por dia.
A coluna VALBRUT refere-se à somatória de valores dos documentos de um determinado dia.
A coluna DOC refere-se à quantidade de documentos emitidos em um determinado dia.
Ambas as colunas DOC e VALBRUT podem não conter valores. Nesse caso, aparece como NULL.
Não entendi o motivo pela qual quando há duplicidade de valor o mesmo não é somado.
Farei a transformação para dinamico após concluido os testes com o código fixo.
Se puder me ajudar, agradeço
-