Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Relatório De Compra De Itens Por Mês (RESOLVIDO)


Antony

Posts Recomendados


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.10
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  48

Bom dia pessoal

Deixa eu dar meu ponto de vista também :clapping:

Pivot nada mais é que, ao invés de trazer os resultados um a baixo do outro você os lista um na frente do outro, é uma das formas de organizar o modo como as informações listadas serão apresentadas..

O Exemplo está no próprio select que organizei para o Sr Antony

Em vez de:

Produto Mês

Telefone Jan

Telefone Fev

Telefone mar

Telefone abr

Temos:

Produto Jan Fev Mar Abr

Telefone 00 14 05 10 <- Podemos trazer os totais em linha e isso diminui a quantidade de códigos em um aplicativo ou o trabalho no desenvolvimento de um relatório.

E por falar em relatório, essa é principalmente para o sr Antony, utilizando o Gerador de CUBO do Corpore RM é possível chegar bem próximo disso e aí sim Frederico, teremos um relatório dinâmico, onde o usuário terá a possibilidade de mexer nas colunas, definir os filtros, etc...

Bom pessoal, neste tópico deu para trocarmos bastante informação e espero que o Sr Antony tenha aprendido algo novo.

Antony, de vez em quando entre no MSDN da microsoft e veja as dicas de SQL, tem muita coisa que pode facilitar a sua vida e isso sem contar nos milhões de sites espalhados pela web.

Assim você poderá nos ajudar também. Quem sabe se o próximo a me tirar uma dúvida de SQL não seja você mesmo em! :Valeu:

Até mais pessoal

:victory:

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  138
  • Tópicos/Dia:  0.03
  • Meu Conteúdo:  567
  • Conteúdo/Dia:  0.12
  • Reputação:   6
  • Pontos/Conquistas:  4.176
  • Conteúdo Resolvido:  0
  • Dias Ganho:  4
  • Status:  Offline

Bom dia pessoal

Deixa eu dar meu ponto de vista também :clapping:

Pivot nada mais é que, ao invés de trazer os resultados um a baixo do outro você os lista um na frente do outro, é uma das formas de organizar o modo como as informações listadas serão apresentadas..

O Exemplo está no próprio select que organizei para o Sr Antony

Em vez de:

Produto Mês

Telefone Jan

Telefone Fev

Telefone mar

Telefone abr

Temos:

Produto Jan Fev Mar Abr

Telefone 00 14 05 10 <- Podemos trazer os totais em linha e isso diminui a quantidade de códigos em um aplicativo ou o trabalho no desenvolvimento de um relatório.

E por falar em relatório, essa é principalmente para o sr Antony, utilizando o Gerador de CUBO do Corpore RM é possível chegar bem próximo disso e aí sim Frederico, teremos um relatório dinâmico, onde o usuário terá a possibilidade de mexer nas colunas, definir os filtros, etc...

Bom pessoal, neste tópico deu para trocarmos bastante informação e espero que o Sr Antony tenha aprendido algo novo.

Antony, de vez em quando entre no MSDN da microsoft e veja as dicas de SQL, tem muita coisa que pode facilitar a sua vida e isso sem contar nos milhões de sites espalhados pela web.

Assim você poderá nos ajudar também. Quem sabe se o próximo a me tirar uma dúvida de SQL não seja você mesmo em! :Valeu:

Até mais pessoal

:victory:

Bom dia Robinson

Consegui entender o conceito do Pivot. Mas a minha duvida é o seguinte na sentença que vc montou para mim olhando parece normal aonde está a diferença que se refere a Pivot na sentença?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.10
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  48

A diferença está em que se você colocar o campo de data no group by do select o resultado vira agrupado por dia e se tiver horário preenchido no campo, ele ainda vai não só agrupar por dia, mas por, segundo, minuto, hora, dia.....

Assim ficaria impossível agrupar tudo e listar com JAN ou FEV....

Você não consegue somar a data simplesmente utilizando o SUM e por isso se você colocar o SUM somente para o campo QUANTIDADE o select vai ficar reclamando que o campo data não está no GROUP BY mas, se simplemente obedecer e colocar o campo lá ele vai cair no problema que citei nos parágrafos a cima.

Então o que eu faço?

Eu coloco dentro do SUM um case e esse CASE vai me retornar o campo QUANTIDADE ou o valor NULL e o GROUP BY não vai olhar dentro do SUM para reclamar do campo DATAEMISSAO, que neste caso nem será listado no resultado do SELECT, servirá apenas como parâmetro para trazer o resultado do campo QUANTIDADE ou não.

SUM(CASE WHEN DATEPART(MONTH,B.DATAEMISSAO) = 1 THEN A.QUANTIDADE END) AS 'JAN',

É como se no SUM só existisse o campo A.QUANTIDAD

Antony, se você não entender agora, só mesmo se ler um pouco cobre o assunto.

Você deve entender muito bem como funciona o CASE e o SUM para depois entender o PIVOT

Fazendo uma analogia com PHP, seria como se você quisesse programar orientado a objeto sem nem ao menos saber programar na forma procedural.

Ixi, acho que compliquei né :blush:

O que quero dizer é que você deve conhecer bem os comandos mais simples do SQL e tendo eles como base você poderá juntá-los e fazer coisas incríveis.

É isso aí

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  11
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  1.140
  • Conteúdo/Dia:  0.21
  • Reputação:   60
  • Pontos/Conquistas:  6.161
  • Conteúdo Resolvido:  0
  • Dias Ganho:  33
  • Status:  Offline
  • Idade:  42
  • Dispositivo:  Windows

Antony,

Criou as colunas, mas como falei anteriormente se fosse produtos ao invés de mês pra cada produto teria que ficar fazendo case when usando o Pivot isso já não é necessário, essa é a diferença.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.10
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  48

Eu discordo, me desculpe.

Por que o case when then está lá.

Só o utilizei dentro do sum para enganar o Group By mas, ele está lá. *:D*

Até mais pessoal

:victory:

Antony,

Criou as colunas, mas como falei anteriormente se fosse produtos ao invés de mês pra cada produto teria que ficar fazendo case when usando o Pivot isso já não é necessário, essa é a diferença.

Link para comentar
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.