Robinson Postado 3 de Outubro de 2012 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 Denunciar Compartilhar Postado 3 de Outubro de 2012 Bom dia pessoal Deixa eu dar meu ponto de vista também 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! Até mais pessoal Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Antony Postado 3 de Outubro de 2012 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 Autor Denunciar Compartilhar Postado 3 de Outubro de 2012 Bom dia pessoal Deixa eu dar meu ponto de vista também 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! Até mais pessoal 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 Mais opções de compartilhamento...
Robinson Postado 3 de Outubro de 2012 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 Denunciar Compartilhar Postado 3 de Outubro de 2012 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é 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 Mais opções de compartilhamento...
Frederico Postado 3 de Outubro de 2012 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 Denunciar Compartilhar Postado 3 de Outubro de 2012 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 Mais opções de compartilhamento...
Robinson Postado 4 de Outubro de 2012 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 Denunciar Compartilhar Postado 4 de Outubro de 2012 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á. Até mais pessoal 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 Mais opções de compartilhamento...
Posts Recomendados