none
Consulta SQL para trazer o resultado de um max e nome da coluna correspondente RRS feed

  • Pergunta

  • Galera bom dia.

    Preciso de uma ajuda. Aqui no trabalho eu tenho uma tabela com dezenas de campos de datas de status que mostra toda a vida de um pedido. Eu preciso fazer um relatório que traga o numero do pedido, a maior e/ou menor data, mas tb preciso saber qual é o campo que está aquela data.

    Exemplo.

    Para conseguir o max por exemplo eu uso 

    SELECT 
        Pedido_Numero, 
        (
            SELECT MAX(UltimoStatus)
            FROM (VALUES ([Minha_Tbl_Status_Pedido.[status_1]),(Minha_Tbl_Status_Pedido.[status_2]),(Minha_Tbl_Status_Pedido.[Status_4])) AS UltimoStatus(UltimoStatus)
        ) AS UltimoStatus
    FROM Minha_Tbl_Status_Pedido

    e o resultado é 

    Pedido_Numero   UltimoStatus

    12345     2016/12/06 18:11:00

    Perfeito.

    mas eu precisaria assim 

    Pedido_Numero   UltimoStatus                  STATUS_NAME

    12345     2016/12/06 18:11:00     Status 2

    12543     2016/12/06 18:11:00     Status 1

    43215    2016/12/06 18:11:00     Status 4

    Desde já agradeço

    sexta-feira, 25 de agosto de 2017 14:29

Respostas

Todas as Respostas

  • Bom dia,

    Experimente fazer uns testes utilizando Unpivot:

    with CTE_Unpivot as
    (
        SELECT 
            [Pedido_Numero], 
            [Status],
            [Status_Name],
            ROW_NUMBER() OVER(PARTITION BY [Pedido_Numero] ORDER BY [Status] DESC) as RN
        from Minha_Tbl_Status_Pedido
        unpivot
        (
            [Status] for [Status_Name] in (Status_1, Status_2, Status_4)
        ) as u
    )
    
    select * from CTE_Unpivot
    where RN = 1

    Espero que ajude


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

    sexta-feira, 25 de agosto de 2017 15:29
  • Deleted
    sexta-feira, 25 de agosto de 2017 22:15
  • Bom dia,

    Por falta de retorno essa thread está encerrada.

    Se preciso, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 28 de agosto de 2017 12:55
    Moderador