none
Pivot RRS feed

  • Pergunta

  • Bom dia pessoal,

    Estou apanhando para fazer uma consulta com PIVOT.
    Tenho uma tabela onde anualmente colocamos nosso budget de vendas e, no decorrer do ano, fazemos algumas revisões para repassarmos à produção.
    Contudo, não estou conseguindo colocar nosso ano em colunas para facilitar no preenchimento de uma planilha conforme a imagem abaixo.
    Minha consulta simples seria +/- assim:

    SELECT
    CODITEM, 
    ANOFRANCES,
    SUM(META)
    FROM 
    BUDGETDS

    Assim, preciso que os valores do ANOFRANCES sejam transformados em coluna e a soma do campo META seja abaixo dessa coluna do ANOFRANCES e as linhas serão os códigos dos itens.

    Agradeço imensamente à todos.

    quinta-feira, 6 de maio de 2021 12:38

Respostas

  • Experimente dessa forma:

    SELECT
        CODITEM,
        [2020-2021],
        [2019-2020],
        [2018-2019],
        [2017-2018]
    FROM
    (
        SELECT CODITEM, META, ANOFRANCES FROM BUDGETDS
        WHERE MES = '5' AND SUPERVISOR = 'ROMEU MARTINS' AND CODITEM = '2033'
    ) AS S
    PIVOT
    (
        SUM(META) FOR ANOFRANCES IN ([2020-2021], [2019-2020], [2018-2019], [2017-2018])
    ) AS P

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 6 de maio de 2021 17:33

Todas as Respostas

  • Bom dia,

    Segue um exemplo para demonstrar a sintaxe com base na consulta que você postou:

    SELECT
        CODITEM, 
        [2020],
        [2021],
        [2022]
    FROM BUDGETDS
    PIVOT
    (
        SUM(META) FOR ANOFRANCES IN ([2020], [2021], [2022])
    ) AS P
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 6 de maio de 2021 13:32
  • Opa, muito obrigado meu amigo!

    Quaaaaase deu certo, to vendo se consigo deixar como preciso aqui....
    Vi que ele não agrupou por item apenas a soma ainda, mas deve ser algo bobo que to deixando passar.

    quinta-feira, 6 de maio de 2021 14:16
  • Experimente fazer uns testes removendo o Group By.

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 6 de maio de 2021 14:47
  • Tentei de N maneiras diferentes...o que notei é que, se eu coloco distinct ou group by, ele traz apenas metade do valor...to sem entender porque ainda.
    O resultado que mandei anteriormente era o mais próximo (com menos linhas vazias).
    Abaixo os valores sem group by e também os valores que deveriam trazer =/
    Acho que estou tanto tempo nesse script que não estou conseguindo visualizar a solução.

    quinta-feira, 6 de maio de 2021 16:00
  • Experimente dessa forma:

    SELECT
        CODITEM,
        [2020-2021],
        [2019-2020],
        [2018-2019],
        [2017-2018]
    FROM
    (
        SELECT CODITEM, META, ANOFRANCES FROM BUDGETDS
        WHERE MES = '5' AND SUPERVISOR = 'ROMEU MARTINS' AND CODITEM = '2033'
    ) AS S
    PIVOT
    (
        SUM(META) FOR ANOFRANCES IN ([2020-2021], [2019-2020], [2018-2019], [2017-2018])
    ) AS P

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 6 de maio de 2021 17:33
  • Sen-sa-ci-o-nal!!!
    Muito obrigado! Deus abençoe meu amigo!!!
    Grande abraço!!!

    Experimente dessa forma:

    SELECT
        CODITEM,
        [2020-2021],
        [2019-2020],
        [2018-2019],
        [2017-2018]
    FROM
    (
        SELECT CODITEM, META, ANOFRANCES FROM BUDGETDS
        WHERE MES = '5' AND SUPERVISOR = 'ROMEU MARTINS' AND CODITEM = '2033'
    ) AS S
    PIVOT
    (
        SUM(META) FOR ANOFRANCES IN ([2020-2021], [2019-2020], [2018-2019], [2017-2018])
    ) AS P

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br


    quinta-feira, 6 de maio de 2021 17:50