none
Agrupamento RRS feed

  • Pergunta

  • Olá,

    Galera, estou com mais um certo probleminha e não sei como resolver.

    Não estou conseguindo agrupar algumas colunas, abaixo segue o resultado dela:

    O que retorna:

     | ANO | FABRICANTE | JAN | FEV | MAR
     |2006  | SUZUKI              | 0       | 0       | 10
     |2006  | SUZUKI              | 0       | 3       | 0
     |2006  | SUZUKI              | 1       | 0       | 0

    Como eu gostaria que retornasse:

     | ANO | FABRICANTE | JAN | FEV | MAR
     |2006  | SUZUKI              | 1       | 3       | 10

    Mais uma vez quero agradecer a todos.


    SELECT
    1
    AS VEEM_PRIORIDADE, VEEM_IX_ANO, NULL AS MAMO_MARCA, (SELECT COUNT(VEEM_PK_ID) AS VEEM_TOTAL FROM VEICULOS_EMPLACADOS AS VEEM_2 INNER JOIN MARCA_MODELO ON VEEM_FK_MAMO_ID = MAMO_PK_ID WHERE VEEM_1.VEEM_IX_ANO = VEEM_2.VEEM_IX_ANO) AS VEEM_TOTAL,
    ISNULL(CASE WHEN VEEM_IX_MES = 1 THEN COUNT(VEEM_IX_ANO) END, 0) AS [Jan] ,
    ISNULL
    (CASE WHEN VEEM_IX_MES = 2 THEN COUNT(VEEM_IX_ANO) END, 0) AS [Fev] , ISNULL(CASE WHEN VEEM_IX_MES = 3 THEN COUNT(VEEM_IX_ANO) END, 0) AS [Mar]
    FROM
    VEICULOS_EMPLACADOS
    AS VEEM_1 INNER JOIN MARCA_MODELO ON VEEM_FK_MAMO_ID = MAMO_PK_ID
    WHERE
    ((( VEEM_IX_ANO = 2006)) AND ((VEEM_IX_MES = 1) OR (VEEM_IX_MES = 2) OR (VEEM_IX_MES = 3)))
    GROUP BY
    VEEM_IX_ANO
    , VEEM_IX_MES

    UNION


    SELECT

    2
    AS VEEM_PRIORIDADE, VEEM_IX_ANO, MAMO_MARCA, (SELECT COUNT(VEEM_PK_ID) AS VEEM_TOTAL FROM VEICULOS_EMPLACADOS AS VEEM_2 INNER JOIN MARCA_MODELO AS MAMO_2 ON VEEM_FK_MAMO_ID = MAMO_PK_ID WHERE VEEM_1.VEEM_IX_ANO = VEEM_2.VEEM_IX_ANO AND MAMO_1.MAMO_MARCA = MAMO_2.MAMO_MARCA) AS VEEM_TOTAL,
    ISNULL(CASE WHEN VEEM_IX_MES = 1 THEN COUNT(VEEM_IX_ANO) END, 0) AS [Jan] , ISNULL(CASE WHEN VEEM_IX_MES = 2 THEN COUNT(VEEM_IX_ANO) END, 0) AS [Fev] , ISNULL(CASE WHEN VEEM_IX_MES = 3 THEN COUNT(VEEM_IX_ANO) END, 0) AS [Mar]
    FROM
    VEICULOS_EMPLACADOS
    AS VEEM_1 INNER JOIN MARCA_MODELO AS MAMO_1 ON VEEM_FK_MAMO_ID = MAMO_PK_ID
    WHERE
    (((VEEM_IX_ANO = 2006)) AND ((VEEM_IX_MES = 1) OR (VEEM_IX_MES = 2) OR (VEEM_IX_MES = 3)))
    GROUP BY
    VEEM_IX_ANO
    , VEEM_IX_MES, MAMO_MARCA
    ORDER BY
    VEEM_TOTAL
    DESC

    quinta-feira, 25 de janeiro de 2007 13:32

Todas as Respostas

  • Tiago se fosse você jogaria o resultado do seu select para uma tabela temporária ou variável Table e depois daria um SUM nos meses.

     

     

    Qualquer coisa retorne

    Espero ter ajudado...

    quinta-feira, 25 de janeiro de 2007 13:43
  • Tiago,

    Concordo com a opinião do Anderson, fica mais fácil de administrar e mais rápido também para se trabalhar com os dados já sumarizados diretamente na table ou variável table.

    quinta-feira, 25 de janeiro de 2007 16:04