none
Como selecionar o nome, referente ao menor item do grupo ?? RRS feed

  • Pergunta

  • Tenho a seguinte tabela: Grupo_Compras GC

    GC.Grupo

    GC.Item

    GC.Nome

    01

    32

    João

    01

    41

    José

    01

    59

    Julia

    02

    05

    Maria

    02

    20

    Monica

    02

    12

    Mario

    03

    27

    Ana

    03

    30

    Arnaldo

    03

    41

    Ari

    Preciso trazer como resultado:

    01

    32

    João

    02

    05

    Maria

    03

    27

    Ana

    Com a seguinte query, eu quase consegui o resultado que preciso:

    SELECT GC.GRUPO, MIN(GC.ITEM) FROM Grupo_Compras GC

    GROUP BY GC.AJ_GRCOM

    Porém, ao acrescentar o GC.NOME no SELECT, também precisa colocar no group by e ai traz vários nome e não somente o que eu preciso. Que seria o nome relacionado ao menor item.

    Na verdade eu nem preciso que apareça o ITEM, só preciso do grupo de compras e do nome.


    Explicando a tabela: Os numero da coluna GC.ITEM são sequenciais por grupo. Ou seja, caso eu acrescente um novo registro no grupo 3, o GC.ITEM desse registro incluído será 42. E se caso for acrescentado um registro no grupo 01, o GC.ITEM será 60.

    quinta-feira, 22 de fevereiro de 2018 17:55

Respostas

Todas as Respostas

  • Boa tarde,

    Experimente fazer uns testes dessa forma:

    with CTE_RN as
    (
        SELECT 
            GC.GRUPO, 
            GC.ITEM,
            GC.NOME,
            ROW_NUMBER() OVER(PARTITION BY GC.GRUPO ORDER BY GC.ITEM) AS RN
        FROM Grupo_Compras GC
    )
    
    SELECT
        *
    FROM CTE_RN
    WHERE
        RN = 1
    

    Espero que ajude


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

    quinta-feira, 22 de fevereiro de 2018 18:57
  • Obrigado pela resposta gapimex. 

    Infelizmente não pude testar seu método, pois onde eu estava implementando o código, não suporta o resultado gerado.

    Consegui da seguinte maneira:

    SELECT GC.GRUPO, GC.ITEM, GC.NOME FROM GRUPO_COMPRAS GC
    
    INNER JOIN (SELECT GRUPO, MIN(ITEM) MINIMO FROM GRUPO_COMPRAS 
    
                       GROUP BY AJ_GRCOM 
    
                      ) ORDENADO
    
    ON ORDENADO.GRUPO = GC.GRUPO


    segunda-feira, 5 de março de 2018 17:58