none
Ajuda com consulta RRS feed

  • Pergunta

  • Bom dia,

    Estou realizando uma consulta e gostaria que um dos campos dela tivesse um agrupamento baseado em um condição.

    Gostaria de agrupar os resultados pelo código da operação obtendo dois agrupamentos um que contemplasse todos os códigos de operação exceto o 0203007 e outro que contenha apenas o 0203007.


    Operações:

    0203001

    0203002

    0203003

    ...

    e

    0203007


    O group by está assim:

    GROUP BY
    F.DESCRICAO, M.CODIGOMATERIAL, M.DESCRICAO, M.UNIDADEFISCAL, L.DESCRICAO_GRUPO_MATERIAL, MV.CODIGOOPERACAO


    Gostaria de obter o resultado da seguinte maneira:

    Representante1, codigomaterial1, descricao1, unidadefiscal1, descricao_grupo_material1, operacções (0203001, 0203002, ... , 0203005, 0203006)

    Representante1, codigomaterial1, descricao1, unidadefiscal1, descricao_grupo_material1, operacções (0203007)

    Se alguém puder me ajudar eu agradeço muito.


    quarta-feira, 17 de outubro de 2012 11:31

Respostas

  • Olá Marcos,

    Você poderia usar o case when,

    ficaria mais ou menos assim

    SELECT ...,(CASE WHEN MV.CODIGOOPERACAO = 0203007 THEN 0203007 ELSE 0 END) AS CODIGOOPERACAO -- SUBSTITUA o campo do select pelo case when FROM ...

    GROUP BY F.DESCRICAO, M.CODIGOMATERIAL, M.DESCRICAO, M.UNIDADEFISCAL, L.DESCRICAO_GRUPO_MATERIAL, (CASE WHEN MV.CODIGOOPERACAO = 0203007 THEN 0203007 ELSE 0 END) -- SUBSTITUA o campo do group by pelo case when


    aqui estou substituindo todos os outros códigos por 0 para o agrupamento


    [ ]´s,
    Lukas Baldan



    quarta-feira, 17 de outubro de 2012 11:40

Todas as Respostas

  • Olá Marcos,

    Você poderia usar o case when,

    ficaria mais ou menos assim

    SELECT ...,(CASE WHEN MV.CODIGOOPERACAO = 0203007 THEN 0203007 ELSE 0 END) AS CODIGOOPERACAO -- SUBSTITUA o campo do select pelo case when FROM ...

    GROUP BY F.DESCRICAO, M.CODIGOMATERIAL, M.DESCRICAO, M.UNIDADEFISCAL, L.DESCRICAO_GRUPO_MATERIAL, (CASE WHEN MV.CODIGOOPERACAO = 0203007 THEN 0203007 ELSE 0 END) -- SUBSTITUA o campo do group by pelo case when


    aqui estou substituindo todos os outros códigos por 0 para o agrupamento


    [ ]´s,
    Lukas Baldan



    quarta-feira, 17 de outubro de 2012 11:40
  • Funcionou perfeitamente, obrigado!
    quarta-feira, 17 de outubro de 2012 12:42