none
Consulta Agrupada RRS feed

  • Pergunta

  • Fala galera, blz

    Queria uma ajuda ai de vocês, tenho uma query que traz a seguinte consulta:

    Vejam que o mes 5 repete duas vezes, com apenas a coluna 1 diferente 'CCCC' e 'AAAA'

    COL1   COL2   COL3   COL4

    AAAA    2012        1         72
    AAAA    2012        2         73
    BBBB    2012        3         69
    BBBB    2012        4         67
    CCCC   2012        5         76
    AAAA   2012        5         76
    CCCC   2012        6         65
    CCCC   2012        7         81
    BBBB    2012        8         75
    CCCC   2012        9         67
    AAAA    2012       10        72
    AAAA    2012       11        72

    Queria aplicar nesta consulta um select que me retorna-se

    COL1            COL2   COL3   COL4

    AAAA               2012        1         72
    AAAA               2012        2         73
    BBBB               2012        3         69
    BBBB               2012        4         67
    CCCC,AAAA    2012        5         76
    CCCC              2012        6         65
    CCCC              2012        7         81
    BBBB               2012        8         75
    CCCC              2012        9         67
    AAAA               2012       10        72
    AAAA               2012       11        72

    sexta-feira, 30 de novembro de 2012 18:02

Respostas

  • Blz,

    Experimente o script abaixo:

    declare @Tabela table
    (COL1 varchar(10), COL2 int, COL3 int, COL4 int);
    
    insert into @Tabela values
    ('AAAA', 2012,        1,        72),
    ('AAAA', 2012,        2,        73),
    ('BBBB', 2012,        3,        69),
    ('BBBB', 2012,        4,        67),
    ('CCCC', 2012,        5,        76),
    ('AAAA', 2012,        5,        76),
    ('CCCC', 2012,        6,        65),
    ('CCCC', 2012,        7,        81),
    ('BBBB', 2012,        8,        75),
    ('CCCC', 2012,        9,        67),
    ('AAAA', 2012,       10,        72),
    ('AAAA', 2012,       11,        72);
    
    SELECT distinct
        STUFF( (SELECT ',' + s.COL1
                FROM @Tabela as s
                WHERE 
                    s.COL2 = t.COL2 AND
                    s.COL3 = t.COL3 AND
                    s.COL4 = t.COL4
                FOR XML PATH(''), TYPE).value('.', 'varchar(max)')
                ,1, 1, '') as COL1,
        t.COL2, 
        t.COL3,
        t.COL4
    FROM @Tabela as t
    ORDER BY 
        t.COL2,
        t.COL3

    Espero que seja útil.


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

    • Sugerido como Resposta Roberson Naves sábado, 1 de dezembro de 2012 14:32
    • Marcado como Resposta Apollo130 terça-feira, 4 de dezembro de 2012 12:31
    sexta-feira, 30 de novembro de 2012 19:56

Todas as Respostas

  • Blz,

    Experimente o script abaixo:

    declare @Tabela table
    (COL1 varchar(10), COL2 int, COL3 int, COL4 int);
    
    insert into @Tabela values
    ('AAAA', 2012,        1,        72),
    ('AAAA', 2012,        2,        73),
    ('BBBB', 2012,        3,        69),
    ('BBBB', 2012,        4,        67),
    ('CCCC', 2012,        5,        76),
    ('AAAA', 2012,        5,        76),
    ('CCCC', 2012,        6,        65),
    ('CCCC', 2012,        7,        81),
    ('BBBB', 2012,        8,        75),
    ('CCCC', 2012,        9,        67),
    ('AAAA', 2012,       10,        72),
    ('AAAA', 2012,       11,        72);
    
    SELECT distinct
        STUFF( (SELECT ',' + s.COL1
                FROM @Tabela as s
                WHERE 
                    s.COL2 = t.COL2 AND
                    s.COL3 = t.COL3 AND
                    s.COL4 = t.COL4
                FOR XML PATH(''), TYPE).value('.', 'varchar(max)')
                ,1, 1, '') as COL1,
        t.COL2, 
        t.COL3,
        t.COL4
    FROM @Tabela as t
    ORDER BY 
        t.COL2,
        t.COL3

    Espero que seja útil.


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

    • Sugerido como Resposta Roberson Naves sábado, 1 de dezembro de 2012 14:32
    • Marcado como Resposta Apollo130 terça-feira, 4 de dezembro de 2012 12:31
    sexta-feira, 30 de novembro de 2012 19:56
  • Exatamente meu caro, abraços, valew
    terça-feira, 4 de dezembro de 2012 12:30