none
Case somando por grupo RRS feed

  • Pergunta

  • Boa tarde a  todos, consegui fazer esse CASE, trazendo meus grupos de materiais, porem precisaria da seguinte informacao.. ex: os grupos 01.01 e 01.03 e 01.05, eu tenho que somar, pois na verdade eles sao do meu grupo chamado ''Servicos Especiais''....

    obrigado a Todos

    SELECT
    CASE
    WHEN MIN (TP.CODIGOPRD) LIKE '01.01%' THEN 'ARGAMASSA '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.02%' THEN 'ACOS E METAIS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.03%' THEN 'AGREGADOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.04%' THEN 'BETUMINOSO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.05%' THEN 'MATERIAIS ELETRICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.06%' THEN 'MATERIAL DE PINTURA'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.07%' THEN 'TUBOS E CONEXOES'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.08%' THEN 'MADEIRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.09%' THEN 'BLOCOS CERÂMICOS E DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.11%' THEN 'REVESTIMENTOS CERAMICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.12%' THEN 'PRE MOLDADOS DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.13%' THEN 'METAIS SANITARIOS E FERRAGENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.14%' THEN 'LOUCAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.15%' THEN 'TELHAS '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.16%' THEN 'DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.17%' THEN 'MARMORES E GRANITOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.01%' THEN 'MANUT. MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.02%' THEN 'SERVIÇOS DIVERSOS - OBRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.03%' THEN 'ÓLEO DIESEL'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.04%' THEN 'ADITIVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.05%' THEN 'ÓLEO'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.01%' THEN 'CONCRETO USINADO'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.02%' THEN 'GRAXA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.03%' THEN 'OLEO DIESEL'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.05%' THEN 'GASOLINA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.06%' THEN 'ÁLCOOL'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.01%' THEN 'MATERIAL LIMPEZA'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.02%' THEN 'MATERIAL ESCRITÓRIO'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.04%' THEN 'PECAS MECANICA MERCEDES BENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.06%' THEN 'PECAS MECANICAS DYNAPAC'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.07%' THEN 'PECAS MECANICA VALMET'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.08%' THEN 'PECAS MECANICA DIVERSAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.09%' THEN 'PECAS MECANICAS VOLVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.10%' THEN 'ELÉTRICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.11%' THEN 'PECAS ELETRICAS CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.14%' THEN 'PECAS ELETRICAS MERCEDES BENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.16%' THEN 'PECAS ELETRICAS DYNAPAC'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.17%' THEN 'PEÇAS ELETRICAS VALMET'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.18%' THEN 'PECAS ELETRICAS DIVERSAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.20%' THEN 'FILTROS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.21%' THEN 'MATERIAL RODANTE/PNEUS'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.01%' THEN 'USO MECÂNICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.02%' THEN 'USO OBRA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.01%' THEN 'ELETRODOMÉSTICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.02%' THEN 'INFORMÁTICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.03%' THEN 'VEÍCULOS LEVES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.04%' THEN 'CAMINHÕES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.05%' THEN 'MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.06%' THEN 'MÓVEIS E UTENSÍLIOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.01%' THEN 'EPI/EPC'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.02%' THEN 'EXTINTORES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.04%' THEN 'TREINAMENTO DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.05%' THEN 'MAO DE OBRA TERCEIRIZADA'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.06%' THEN 'BRINDES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.07%' THEN 'TREINAMENTOS(INATIVO)'
    WHEN MIN (TP.CODIGOPRD) LIKE '80.01%' THEN 'CHECK LIST DE EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.01%' THEN 'TELEFONE'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.02%' THEN 'ENERGIA'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.03%' THEN 'AGUA '
    WHEN MIN (TP.CODIGOPRD) LIKE '20.04%' THEN 'TV A CABO'
    WHEN MIN (TP.CODIGOPRD) LIKE '99.01%' THEN 'SERVIÇOS DIVERSOS'
    ELSE 'SEM CLASSIFICACAO'
    END AS 'GRUPO MATERIAS',
    SUM (T1.QUANTIDADE * T1.PRECOUNITARIO) AS 'VALOR TOTAL' FROM TMOV
    INNER JOIN TITMMOV AS T1 ON T1.CODCOLIGADA = TMOV.CODCOLIGADA AND T1.IDMOV = TMOV.IDMOV
    INNER JOIN TPRD AS TP ON TP.CODCOLIGADA = TP.CODCOLIGADA AND T1.IDPRD = TP.IDPRD
    WHERE CODTMV IN ('1.2.01','1.2.11','1.2.12','1.2.05','1.2.06','1.2.09','1.2.12') AND TMOV.DATAEMISSAO BETWEEN '2009-01-01' AND '2009-08-11' AND TP.ULTIMONIVEL = '1'
    GROUP BY substring(codigoprd,1,5)
    ORDER BY substring(codigoprd,1,5)

    • Movido Gustavo Maia Aguiar domingo, 23 de agosto de 2009 02:56 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 12 de agosto de 2009 18:38

Respostas

  • O problema é com a função min() que é uma função de agregação, como foi retirado o group by do teu select, deve ser usada outra função para identificar os grupos.

    Tenta usar isso:

    SELECT 
    N.[GRUPO MATERIAS], 
    SUM(N.QUANTIDADE * N.PRECOUNITARIO) AS [VALOR TOTAL],
    N.[EMPRESA$]
    From
    (
    SELECT 
    case
    WHEN LEFT (TP.CODIGOPRD,5) = '01.01' THEN '01.01 - ARGAMASSA '
    WHEN LEFT (TP.CODIGOPRD,5) = '01.02' THEN '01.02 - ACOS E METAIS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.03' THEN 'AGREGADOS' 
    WHEN LEFT (TP.CODIGOPRD,5) = '01.04' THEN 'BETULEFTOSO'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.05' THEN 'MATERIAIS ELETRICOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.06' THEN 'MATERIAL DE PINTURA'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.07' THEN 'TUBOS E CONEXOES'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.08' THEN 'MADEIRAS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.09' THEN 'BLOCOS CERÂMICOS E DE CONCRETO'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.11' THEN 'REVESTIMENTOS CERAMICOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.12' THEN 'PRE MOLDADOS DE CONCRETO'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.13' THEN 'METAIS SANITARIOS E FERRAGENS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.14' THEN 'LOUCAS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.15' THEN 'TELHAS '
    WHEN LEFT (TP.CODIGOPRD,5) = '01.16' THEN 'DIVERSOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.17' THEN 'MARMORES E GRANITOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.01' THEN 'MANUT. MÁQUINAS E EQUIPAMENTOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.02' THEN 'SERVIÇOS DIVERSOS - OBRAS'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.03' THEN 'ÓLEO DIESEL'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.04' THEN 'ADITIVO'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.05' THEN 'CONCRETO USINADO'
    WHEN LEFT (TP.CODIGOPRD,5) = '03.01' THEN 'ÓLEO DIESEL/LUBRIFICANTE'
    WHEN LEFT (TP.CODIGOPRD,5) = '03.02' THEN 'GRAXA'
    WHEN LEFT (TP.CODIGOPRD,5) = '03.05' THEN 'GASOLINA' 
    WHEN LEFT (TP.CODIGOPRD,5) = '03.06' THEN 'ÁLCOOL' 
    WHEN LEFT (TP.CODIGOPRD,5) = '04.01' THEN 'MATERIAL LIMPEZA' 
    WHEN LEFT (TP.CODIGOPRD,5) = '04.02' THEN 'MATERIAL ESCRITÓRIO' 
    WHEN LEFT (TP.CODIGOPRD,5) = '05.01' THEN 'PECAS MECANICA CATERPILLAR' 
    WHEN LEFT (TP.CODIGOPRD,5) = '05.01' OR
     LEFT (TP.CODIGOPRD,5) = '05.04' OR
     LEFT (TP.CODIGOPRD,5) = '05.06' OR
     LEFT (TP.CODIGOPRD,5) = '05.07' OR
     LEFT (TP.CODIGOPRD,5) = '05.08' OR
     LEFT (TP.CODIGOPRD,5) = '05.09' 
    THEN 'PECAS A'
    WHEN LEFT (TP.CODIGOPRD,5) = '05.10' THEN 'ELÉTRICA'
    WHEN (LEFT (TP.CODIGOPRD,5) = '05.11') OR             
     (LEFT (TP.CODIGOPRD,5) LIKE '05.14') OR
     (LEFT (TP.CODIGOPRD,5) LIKE '05.16') OR
     (LEFT (TP.CODIGOPRD,5) LIKE '05.17') OR
     (LEFT (TP.CODIGOPRD,5) LIKE '05.18') 
    THEN 'PECAS B'
    WHEN LEFT (TP.CODIGOPRD,5) = '05.20' THEN 'FILTROS'
    WHEN LEFT (TP.CODIGOPRD,5) = '05.21' THEN 'MATERIAL RODANTE/PNEUS'
    WHEN LEFT (TP.CODIGOPRD,5) = '06.01' THEN 'USO MECÂNICA'
    WHEN LEFT (TP.CODIGOPRD,5) = '06.02' THEN 'USO OBRA'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.01' THEN 'ELETRODOMÉSTICOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.02' THEN 'INFORMÁTICA'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.03' THEN 'VEÍCULOS LEVES'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.04' THEN 'CALEFTHÕES'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.05' THEN 'MÁQUINAS E EQUIPAMENTOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.06' THEN 'MÓVEIS E UTENSÍLIOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.01' THEN 'EPI/EPC'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.02' THEN 'EXTINTORES'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.04' THEN 'TREINAMENTO DIVERSOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.05' THEN 'MAO DE OBRA TERCEIRIZADA'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.06' THEN 'BRINDES'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.07' THEN 'TREINAMENTOS(INATIVO)'
    WHEN LEFT (TP.CODIGOPRD,5) = '80.01' THEN 'CHECK LIST DE EQUIPAMENTOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '20.01' THEN 'TELEFONE'
    WHEN LEFT (TP.CODIGOPRD,5) = '20.02' THEN 'ENERGIA'
    WHEN LEFT (TP.CODIGOPRD,5) = '20.03' THEN 'AGUA '
    WHEN LEFT (TP.CODIGOPRD,5) = '20.04' THEN 'TV A CABO'
    WHEN LEFT (TP.CODIGOPRD,5) = '99.01' THEN 'SERVIÇOS DIVERSOS'
    ELSE 'SEM CLASSIFICACAO'
    END AS 'GRUPO MATERIAS', 
    T1.QUANTIDADE,
    T1.PRECOUNITARIO,
    TMOV.CODCOLIGADA AS 'EMPRESA$' FROM TMOV 
    INNER JOIN TITMMOV AS T1 ON T1.CODCOLIGADA = TMOV.CODCOLIGADA AND T1.IDMOV = TMOV.IDMOV
    INNER JOIN TPRD AS TP ON TP.CODCOLIGADA = TP.CODCOLIGADA AND T1.IDPRD = TP.IDPRD
    WHERE CODTMV IN ('1.2.01','1.2.11','1.2.12','1.2.05','1.2.06','1.2.09','1.2.14') AND TMOV.DATAEMISSAO BETWEEN '2009-01-01' AND '2009-08-11'  AND TP.ULTIMONIVEL = '1'
    )
    
    N
    
    GROUP BY [GRUPO MATERIAS], [EMPRESA$]
    ORDER BY [GRUPO MATERIAS]
    


    Abraço,

    Aaron Bock

    • Marcado como Resposta Ronnie Von sexta-feira, 21 de agosto de 2009 17:19
    • Não Marcado como Resposta Ronnie Von sexta-feira, 21 de agosto de 2009 17:20
    • Marcado como Resposta Ronnie Von sexta-feira, 21 de agosto de 2009 17:25
    quinta-feira, 20 de agosto de 2009 21:24

Todas as Respostas

  • Ronnie,

        Você já deu uma olhada no operador ROLLUP???
    MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008
    quarta-feira, 12 de agosto de 2009 18:58
    Moderador
  • Roberto nao Olhei esse Operador nao...vou tentar pesquisar..
    Obrigado

    quarta-feira, 12 de agosto de 2009 18:59
  • Nao consegui nada pessoal alguem poderia me orientar como proceder...

    Obrigado a todos
    quarta-feira, 12 de agosto de 2009 19:31
  • Oi Ronnie Von

    Se você quer somar três grupos com códigos distintos em um mesmo registro, tente usar a querie assim:

    SELECT
    CASE
    WHEN MIN (TP.CODIGOPRD) LIKE '01.01%' or (TP.CODIGOPRD) LIKE '01.03%' or (TP.CODIGOPRD) LIKE '01.05%' THEN 'SERVICOS ESPECIAIS '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.02%' THEN 'ACOS E METAIS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.04%' THEN 'BETUMINOSO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.06%' THEN 'MATERIAL DE PINTURA'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.07%' THEN 'TUBOS E CONEXOES'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.08%' THEN 'MADEIRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.09%' THEN 'BLOCOS CERÂMICOS E DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.11%' THEN 'REVESTIMENTOS CERAMICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.12%' THEN 'PRE MOLDADOS DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.13%' THEN 'METAIS SANITARIOS E FERRAGENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.14%' THEN 'LOUCAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.15%' THEN 'TELHAS '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.16%' THEN 'DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.17%' THEN 'MARMORES E GRANITOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.01%' THEN 'MANUT. MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.02%' THEN 'SERVIÇOS DIVERSOS - OBRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.03%' THEN 'ÓLEO DIESEL'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.04%' THEN 'ADITIVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.05%' THEN 'ÓLEO'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.01%' THEN 'CONCRETO USINADO'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.02%' THEN 'GRAXA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.03%' THEN 'OLEO DIESEL'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.05%' THEN 'GASOLINA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.06%' THEN 'ÁLCOOL'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.01%' THEN 'MATERIAL LIMPEZA'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.02%' THEN 'MATERIAL ESCRITÓRIO'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.04%' THEN 'PECAS MECANICA MERCEDES BENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.06%' THEN 'PECAS MECANICAS DYNAPAC'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.07%' THEN 'PECAS MECANICA VALMET'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.08%' THEN 'PECAS MECANICA DIVERSAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.09%' THEN 'PECAS MECANICAS VOLVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.10%' THEN 'ELÉTRICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.11%' THEN 'PECAS ELETRICAS CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.14%' THEN 'PECAS ELETRICAS MERCEDES BENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.16%' THEN 'PECAS ELETRICAS DYNAPAC'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.17%' THEN 'PEÇAS ELETRICAS VALMET'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.18%' THEN 'PECAS ELETRICAS DIVERSAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.20%' THEN 'FILTROS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.21%' THEN 'MATERIAL RODANTE/PNEUS'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.01%' THEN 'USO MECÂNICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.02%' THEN 'USO OBRA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.01%' THEN 'ELETRODOMÉSTICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.02%' THEN 'INFORMÁTICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.03%' THEN 'VEÍCULOS LEVES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.04%' THEN 'CAMINHÕES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.05%' THEN 'MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.06%' THEN 'MÓVEIS E UTENSÍLIOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.01%' THEN 'EPI/EPC'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.02%' THEN 'EXTINTORES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.04%' THEN 'TREINAMENTO DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.05%' THEN 'MAO DE OBRA TERCEIRIZADA'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.06%' THEN 'BRINDES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.07%' THEN 'TREINAMENTOS(INATIVO)'
    WHEN MIN (TP.CODIGOPRD) LIKE '80.01%' THEN 'CHECK LIST DE EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.01%' THEN 'TELEFONE'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.02%' THEN 'ENERGIA'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.03%' THEN 'AGUA '
    WHEN MIN (TP.CODIGOPRD) LIKE '20.04%' THEN 'TV A CABO'
    WHEN MIN (TP.CODIGOPRD) LIKE '99.01%' THEN 'SERVIÇOS DIVERSOS'
    ELSE 'SEM CLASSIFICACAO'
    END AS 'GRUPO MATERIAS',
    SUM (T1.QUANTIDADE * T1.PRECOUNITARIO) AS 'VALOR TOTAL' FROM TMOV
    INNER JOIN TITMMOV AS T1 ON T1.CODCOLIGADA = TMOV.CODCOLIGADA AND T1.IDMOV = TMOV.IDMOV
    INNER JOIN TPRD AS TP ON TP.CODCOLIGADA = TP.CODCOLIGADA AND T1.IDPRD = TP.IDPRD
    WHERE CODTMV IN ('1.2.01','1.2.11','1.2.12','1.2.05','1.2.06','1.2.09','1.2.12') AND TMOV.DATAEMISSAO BETWEEN '2009-01-01' AND '2009-08-11' AND TP.ULTIMONIVEL = '1'
    GROUP BY substring(codigoprd,1,5)
    ORDER BY substring(codigoprd,1,5)

    Abraço,
    Aaron Bock
    Aaron Bock
    segunda-feira, 17 de agosto de 2009 13:37
  • Ronnie,

    Você conseguiu solucionar o seu problema?
    Caso afirmativo poste a solução para que outras pessoas se beneficiem.

    Att,
    Fernanda


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    segunda-feira, 17 de agosto de 2009 19:00
  • Bom dia a todos , desculpem pela demora..
    Pessoal ainda nao consegui resolver com a sentença indicada acima,, vou detalhar um pouco mais
    Seguinte o resultado esse sentenca me retorna varios grupos/familia de Materiais.tipo

    Argamassa
    Acos e Metais
    Concreto
    EPIs
    Peças A
    Pecas B
    Em resumo esses grupos Peças A.B, na verdade sao da Famila Peças
    preciso nessa sentenca agrupas somar o valor desses grupos
    Resultado do
    Pecas A      - 140.895.03
    Peças  B     - 227.326,35

    Somando na senteca teria que ficar assim
    Peças         - 368.221.38


    Senteça

    SELECT
    case
    WHEN MIN (TP.CODIGOPRD) LIKE '01.01%' THEN '01.01 - ARGAMASSA '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.02%' THEN '01.02 - ACOS E METAIS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.03%' THEN 'AGREGADOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.04%' THEN 'BETUMINOSO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.05%' THEN 'MATERIAIS ELETRICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.06%' THEN 'MATERIAL DE PINTURA'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.07%' THEN 'TUBOS E CONEXOES'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.08%' THEN 'MADEIRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.09%' THEN 'BLOCOS CERÂMICOS E DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.11%' THEN 'REVESTIMENTOS CERAMICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.12%' THEN 'PRE MOLDADOS DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.13%' THEN 'METAIS SANITARIOS E FERRAGENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.14%' THEN 'LOUCAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.15%' THEN 'TELHAS '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.16%' THEN 'DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.17%' THEN 'MARMORES E GRANITOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.01%' THEN 'MANUT. MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.02%' THEN 'SERVIÇOS DIVERSOS - OBRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.03%' THEN 'ÓLEO DIESEL'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.04%' THEN 'ADITIVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.05%' THEN 'CONCRETO USINADO'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.01%' THEN 'ÓLEO DIESEL/LUBRIFICANTE'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.02%' THEN 'GRAXA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.05%' THEN 'GASOLINA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.06%' THEN 'ÁLCOOL'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.01%' THEN 'MATERIAL LIMPEZA'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.02%' THEN 'MATERIAL ESCRITÓRIO'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.04%' THEN 'PECAS MECANICA MERCEDES BENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.06%' THEN 'PECAS MECANICAS DYNAPAC'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.07%' THEN 'PECAS MECANICA VALMET'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.08%' THEN 'PECAS MECANICA DIVERSAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.09%' THEN 'PECAS MECANICAS VOLVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.10%' THEN 'ELÉTRICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.11%' THEN 'PECAS ELETRICAS CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.14%' THEN 'PECAS ELETRICAS MERCEDES BENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.16%' THEN 'PECAS ELETRICAS DYNAPAC'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.17%' THEN 'PEÇAS ELETRICAS VALMET'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.18%' THEN 'PECAS ELETRICAS DIVERSAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.20%' THEN 'FILTROS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.21%' THEN 'MATERIAL RODANTE/PNEUS'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.01%' THEN 'USO MECÂNICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.02%' THEN 'USO OBRA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.01%' THEN 'ELETRODOMÉSTICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.02%' THEN 'INFORMÁTICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.03%' THEN 'VEÍCULOS LEVES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.04%' THEN 'CAMINHÕES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.05%' THEN 'MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.06%' THEN 'MÓVEIS E UTENSÍLIOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.01%' THEN 'EPI/EPC'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.02%' THEN 'EXTINTORES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.04%' THEN 'TREINAMENTO DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.05%' THEN 'MAO DE OBRA TERCEIRIZADA'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.06%' THEN 'BRINDES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.07%' THEN 'TREINAMENTOS(INATIVO)'
    WHEN MIN (TP.CODIGOPRD) LIKE '80.01%' THEN 'CHECK LIST DE EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.01%' THEN 'TELEFONE'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.02%' THEN 'ENERGIA'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.03%' THEN 'AGUA '
    WHEN MIN (TP.CODIGOPRD) LIKE '20.04%' THEN 'TV A CABO'
    WHEN MIN (TP.CODIGOPRD) LIKE '99.01%' THEN 'SERVIÇOS DIVERSOS'
    ELSE 'SEM CLASSIFICACAO'
    END AS 'GRUPO MATERIAS',
    SUM(T1.QUANTIDADE * T1.PRECOUNITARIO) AS 'VALOR TOTAL',
    TMOV.CODCOLIGADA AS 'EMPRESA$' FROM TMOV
    INNER JOIN TITMMOV AS T1 ON T1.CODCOLIGADA = TMOV.CODCOLIGADA AND T1.IDMOV = TMOV.IDMOV
    INNER JOIN TPRD AS TP ON TP.CODCOLIGADA = TP.CODCOLIGADA AND T1.IDPRD = TP.IDPRD
    WHERE CODTMV IN ('1.2.01','1.2.11','1.2.12','1.2.05','1.2.06','1.2.09','1.2.14') AND TMOV.DATAEMISSAO BETWEEN '2009-01-01' AND '2009-08-11'  AND TP.ULTIMONIVEL = '1'
    GROUP BY substring(codigoprd,1,5),TMOV.CODCOLIGADA
    ORDER BY substring(codigoprd,1,5)


    obrigado a Todos
    quarta-feira, 19 de agosto de 2009 11:39
  • Bom dia Ronnie.

    Para somar os registros de um mesmo grupo e mostrá-los adequadamente, sugiro a solução abaixo, usando um alias para agrupamento dos registros:

    SELECT 
    	N.[GRUPO MATERIAS], 
    	SUM(N.QUANTIDADE * N.PRECOUNITARIO) AS [VALOR TOTAL],
    	N.[EMPRESA$]
    (
    SELECT 
    case
    WHEN MIN (TP.CODIGOPRD) LIKE '01.01%' THEN '01.01 - ARGAMASSA '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.02%' THEN '01.02 - ACOS E METAIS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.03%' THEN 'AGREGADOS' 
    WHEN MIN (TP.CODIGOPRD) LIKE '01.04%' THEN 'BETUMINOSO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.05%' THEN 'MATERIAIS ELETRICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.06%' THEN 'MATERIAL DE PINTURA'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.07%' THEN 'TUBOS E CONEXOES'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.08%' THEN 'MADEIRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.09%' THEN 'BLOCOS CERÂMICOS E DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.11%' THEN 'REVESTIMENTOS CERAMICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.12%' THEN 'PRE MOLDADOS DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.13%' THEN 'METAIS SANITARIOS E FERRAGENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.14%' THEN 'LOUCAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.15%' THEN 'TELHAS '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.16%' THEN 'DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.17%' THEN 'MARMORES E GRANITOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.01%' THEN 'MANUT. MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.02%' THEN 'SERVIÇOS DIVERSOS - OBRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.03%' THEN 'ÓLEO DIESEL'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.04%' THEN 'ADITIVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.05%' THEN 'CONCRETO USINADO'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.01%' THEN 'ÓLEO DIESEL/LUBRIFICANTE'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.02%' THEN 'GRAXA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.05%' THEN 'GASOLINA' 
    WHEN MIN (TP.CODIGOPRD) LIKE '03.06%' THEN 'ÁLCOOL' 
    WHEN MIN (TP.CODIGOPRD) LIKE '04.01%' THEN 'MATERIAL LIMPEZA' 
    WHEN MIN (TP.CODIGOPRD) LIKE '04.02%' THEN 'MATERIAL ESCRITÓRIO' 
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR' 
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' OR
    	MIN (TP.CODIGOPRD) LIKE '05.04%' OR
    	MIN (TP.CODIGOPRD) LIKE '05.06%' OR
    	MIN (TP.CODIGOPRD) LIKE '05.07%' OR
    	MIN (TP.CODIGOPRD) LIKE '05.08%' OR
    	MIN (TP.CODIGOPRD) LIKE '05.09%' 
    THEN 'PECAS A'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.10%' THEN 'ELÉTRICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.11%' OR
    	MIN (TP.CODIGOPRD) LIKE '05.14%' THEN 'PECAS ELETRICAS MERCEDES BENS' OR
    	MIN (TP.CODIGOPRD) LIKE '05.16%' THEN 'PECAS ELETRICAS DYNAPAC' OR
    	MIN (TP.CODIGOPRD) LIKE '05.17%' THEN 'PEÇAS ELETRICAS VALMET' OR
    	MIN (TP.CODIGOPRD) LIKE '05.18%' THEN 'PECAS ELETRICAS DIVERSAS' 
    THEN 'PECAS B'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.20%' THEN 'FILTROS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.21%' THEN 'MATERIAL RODANTE/PNEUS'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.01%' THEN 'USO MECÂNICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.02%' THEN 'USO OBRA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.01%' THEN 'ELETRODOMÉSTICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.02%' THEN 'INFORMÁTICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.03%' THEN 'VEÍCULOS LEVES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.04%' THEN 'CAMINHÕES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.05%' THEN 'MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.06%' THEN 'MÓVEIS E UTENSÍLIOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.01%' THEN 'EPI/EPC'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.02%' THEN 'EXTINTORES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.04%' THEN 'TREINAMENTO DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.05%' THEN 'MAO DE OBRA TERCEIRIZADA'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.06%' THEN 'BRINDES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.07%' THEN 'TREINAMENTOS(INATIVO)'
    WHEN MIN (TP.CODIGOPRD) LIKE '80.01%' THEN 'CHECK LIST DE EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.01%' THEN 'TELEFONE'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.02%' THEN 'ENERGIA'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.03%' THEN 'AGUA '
    WHEN MIN (TP.CODIGOPRD) LIKE '20.04%' THEN 'TV A CABO'
    WHEN MIN (TP.CODIGOPRD) LIKE '99.01%' THEN 'SERVIÇOS DIVERSOS'
    ELSE 'SEM CLASSIFICACAO'
    END AS 'GRUPO MATERIAS', 
    T1.QUANTIDADE,
    T1.PRECOUNITARIO,
    TMOV.CODCOLIGADA AS 'EMPRESA$' FROM TMOV 
    INNER JOIN TITMMOV AS T1 ON T1.CODCOLIGADA = TMOV.CODCOLIGADA AND T1.IDMOV = TMOV.IDMOV
    INNER JOIN TPRD AS TP ON TP.CODCOLIGADA = TP.CODCOLIGADA AND T1.IDPRD = TP.IDPRD
    WHERE CODTMV IN ('1.2.01','1.2.11','1.2.12','1.2.05','1.2.06','1.2.09','1.2.14') AND TMOV.DATAEMISSAO BETWEEN '2009-01-01' AND '2009-08-11'  AND TP.ULTIMONIVEL = '1'
    ) 
    
    N
    
    GROUP BY [GRUPO MATERIAS], [EMPRESA$]
    ORDER BY [GRUPO MATERIAS]
    

    Abraço,

    Aaron Bock


    Aaron Bock
    quarta-feira, 19 de agosto de 2009 13:57
  • Obrigada Aaron, pela Ajuda,mas rodando aqui na minha base me apresentou essa mensagem de erro.

    Msg 156, Level 15, State 1, Line 6
    Incorrect syntax near the keyword 'SELECT'.
    Msg 156, Level 15, State 1, Line 45
    Incorrect syntax near the keyword 'OR'.

    Entao tentei ver alguma coisa, na senteça que voce me passou coloquei uma virgula
    SELECT
    N.[GRUPO MATERIAS],
    SUM(N.QUANTIDADE * N.PRECOUNITARIO) AS [VALOR TOTAL],
    N.[EMPRESA$]  , AQUI
    Depois rodei novamente e agora me apresentou essa mensagem..

    Msg 156, Level 15, State 1, Line 45
    Incorrect syntax near the keyword 'OR'.

    Somente coloquei virgula...
    Mas uma vez Obrigado

    quarta-feira, 19 de agosto de 2009 18:29
  • Bah veio

    My mistake

    Faltou o From no primeiro select:

    Onde está escrito

    SELECT
    N.[GRUPO MATERIAS],
    SUM(N.QUANTIDADE * N.PRECOUNITARIO) AS [VALOR TOTAL],
    N.[EMPRESA$]
    (


    coloca


    SELECT
    N.[GRUPO MATERIAS],
    SUM(N.QUANTIDADE * N.PRECOUNITARIO) AS [VALOR TOTAL],
    N.[EMPRESA$]
    From
    (


    Abraço,

    Aaron Bock
    quarta-feira, 19 de agosto de 2009 20:53
  • Não testei o código, desculpe se a informação abaixo não for útil.
    Mas, eu costumo utilizar o CASE assim (um trecho correspondendo a sintaxe CASE):
    case when fb.idade < 26 then 'Ate 25' else
    	case when fb.idade < 41 then 'De 26 a 40' else
    	case when fb.idade < 56 then 'De 41 a 55' else 
    	case when fb.idade >= 56 then 'Acima de 56' else 'SEM Idade' end end end end 
    Uma boa pratica para lógica (OR, e outras) é utilizar os parenteses, não interfere em erros, mas ajuda muito em caçar os erros das Grandes SELECTs

    -
    Se eu estiver respondendo a sua pergunta, e a mesma tiver utilidade. Vote com útil. Se for minha dúvida, e você me ajudar na solução, terei o maior prazer em votar como útil. Esse é o espírito do Forum MSDN !!! Valew !
    quarta-feira, 19 de agosto de 2009 21:37
  • Bom dia Araron, estou ate com vergonha,obrigado pela ajuda,fiz a alteracao conforme voce falou,pore continuar me retornando esse mensagem agora...

    Sentenca SELECT
    N.[GRUPO MATERIAS],
    SUM(N.QUANTIDADE * N.PRECOUNITARIO) AS [VALOR TOTAL],
    N.[EMPRESA$]
    From
    (
    SELECT
    case
    WHEN MIN (TP.CODIGOPRD) LIKE '01.01%' THEN '01.01 - ARGAMASSA '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.02%' THEN '01.02 - ACOS E METAIS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.03%' THEN 'AGREGADOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.04%' THEN 'BETUMINOSO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.05%' THEN 'MATERIAIS ELETRICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.06%' THEN 'MATERIAL DE PINTURA'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.07%' THEN 'TUBOS E CONEXOES'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.08%' THEN 'MADEIRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.09%' THEN 'BLOCOS CERÂMICOS E DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.11%' THEN 'REVESTIMENTOS CERAMICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.12%' THEN 'PRE MOLDADOS DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.13%' THEN 'METAIS SANITARIOS E FERRAGENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.14%' THEN 'LOUCAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.15%' THEN 'TELHAS '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.16%' THEN 'DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.17%' THEN 'MARMORES E GRANITOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.01%' THEN 'MANUT. MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.02%' THEN 'SERVIÇOS DIVERSOS - OBRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.03%' THEN 'ÓLEO DIESEL'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.04%' THEN 'ADITIVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.05%' THEN 'CONCRETO USINADO'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.01%' THEN 'ÓLEO DIESEL/LUBRIFICANTE'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.02%' THEN 'GRAXA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.05%' THEN 'GASOLINA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.06%' THEN 'ÁLCOOL'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.01%' THEN 'MATERIAL LIMPEZA'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.02%' THEN 'MATERIAL ESCRITÓRIO'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' OR
     MIN (TP.CODIGOPRD) LIKE '05.04%' OR
     MIN (TP.CODIGOPRD) LIKE '05.06%' OR
     MIN (TP.CODIGOPRD) LIKE '05.07%' OR
     MIN (TP.CODIGOPRD) LIKE '05.08%' OR
     MIN (TP.CODIGOPRD) LIKE '05.09%'
    THEN 'PECAS A'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.10%' THEN 'ELÉTRICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.11%' OR
     MIN (TP.CODIGOPRD) LIKE '05.14%' THEN 'PECAS ELETRICAS MERCEDES BENS' OR
     MIN (TP.CODIGOPRD) LIKE '05.16%' THEN 'PECAS ELETRICAS DYNAPAC' OR
     MIN (TP.CODIGOPRD) LIKE '05.17%' THEN 'PEÇAS ELETRICAS VALMET' OR
     MIN (TP.CODIGOPRD) LIKE '05.18%' THEN 'PECAS ELETRICAS DIVERSAS'
    THEN 'PECAS B'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.20%' THEN 'FILTROS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.21%' THEN 'MATERIAL RODANTE/PNEUS'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.01%' THEN 'USO MECÂNICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.02%' THEN 'USO OBRA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.01%' THEN 'ELETRODOMÉSTICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.02%' THEN 'INFORMÁTICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.03%' THEN 'VEÍCULOS LEVES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.04%' THEN 'CAMINHÕES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.05%' THEN 'MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.06%' THEN 'MÓVEIS E UTENSÍLIOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.01%' THEN 'EPI/EPC'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.02%' THEN 'EXTINTORES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.04%' THEN 'TREINAMENTO DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.05%' THEN 'MAO DE OBRA TERCEIRIZADA'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.06%' THEN 'BRINDES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.07%' THEN 'TREINAMENTOS(INATIVO)'
    WHEN MIN (TP.CODIGOPRD) LIKE '80.01%' THEN 'CHECK LIST DE EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.01%' THEN 'TELEFONE'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.02%' THEN 'ENERGIA'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.03%' THEN 'AGUA '
    WHEN MIN (TP.CODIGOPRD) LIKE '20.04%' THEN 'TV A CABO'
    WHEN MIN (TP.CODIGOPRD) LIKE '99.01%' THEN 'SERVIÇOS DIVERSOS'
    ELSE 'SEM CLASSIFICACAO'
    END AS 'GRUPO MATERIAS',
    T1.QUANTIDADE,
    T1.PRECOUNITARIO,
    TMOV.CODCOLIGADA AS 'EMPRESA$' FROM TMOV
    INNER JOIN TITMMOV AS T1 ON T1.CODCOLIGADA = TMOV.CODCOLIGADA AND T1.IDMOV = TMOV.IDMOV
    INNER JOIN TPRD AS TP ON TP.CODCOLIGADA = TP.CODCOLIGADA AND T1.IDPRD = TP.IDPRD
    WHERE CODTMV IN ('1.2.01','1.2.11','1.2.12','1.2.05','1.2.06','1.2.09','1.2.14') AND TMOV.DATAEMISSAO BETWEEN '2009-01-01' AND '2009-08-11'  AND TP.ULTIMONIVEL = '1'
    )

    N

    GROUP BY [GRUPO MATERIAS], [EMPRESA$]
    ORDER BY [GRUPO MATERIAS]

    Mensagem de Erro..
    Msg 156, Level 15, State 1, Line 46
    Incorrect syntax near the keyword 'OR'.

    obrigado

    quinta-feira, 20 de agosto de 2009 14:21
  • Obrigado pela dica Anetao
    quinta-feira, 20 de agosto de 2009 14:21
  • cara,

    que isso veio, foi falha minha mesmo.

    este trecho aqui tava errado no select que te mandei.
    as linhas em vermelho estavam sobrando, pois copiei do teu select anterior.


    WHEN MIN (TP.CODIGOPRD) LIKE '05.11%' OR
     MIN (TP.CODIGOPRD) LIKE '05.14%' THEN 'PECAS ELETRICAS MERCEDES BENS' OR
     MIN (TP.CODIGOPRD) LIKE '05.16%' THEN 'PECAS ELETRICAS DYNAPAC' OR
     MIN (TP.CODIGOPRD) LIKE '05.17%' THEN 'PEÇAS ELETRICAS VALMET' OR
     MIN (TP.CODIGOPRD) LIKE '05.18%' THEN 'PECAS ELETRICAS DIVERSAS'
    THEN 'PECAS B'

    se deixar esse trecho do código assim vai funcionar:
    seguindo a orientação do aNetão, podemos colocar o parentesis entre cada sentença do OR

    WHEN (MIN (TP.CODIGOPRD) LIKE '05.11%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.14%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.16%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.17%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.18%')
    THEN 'PECAS B'



    Abraço,
    Aaron Bock
    quinta-feira, 20 de agosto de 2009 17:43
  • Valeu demais, esta me ajudando muito..Obrigado

    Vms la
    Fazendo conforme voce falou ficou assim

    WHEN MIN (TP.CODIGOPRD) LIKE '05.11%' OR              -- Aaron, conforme voce falou --
     MIN (TP.CODIGOPRD) LIKE '05.14%' THEN  OR
     MIN (TP.CODIGOPRD) LIKE '05.16%' THEN  OR
     MIN (TP.CODIGOPRD) LIKE '05.17%' THEN  OR
     MIN (TP.CODIGOPRD) LIKE '05.18%' THEN 
    THEN 'PECAS B'

    E me apresentou essa mensagem de erro
    Msg 156, Level 15, State 1, Line 46
    Incorrect syntax near the keyword 'OR'.

    --------------------------------------------------
    Seguindo o outro Exemplo ficou assim

    WHEN (MIN (TP.CODIGOPRD) LIKE '05.11%') OR               --outro exemplo--
     (MIN (TP.CODIGOPRD) LIKE '05.14%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.16%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.17%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.18%')
    THEN 'PECAS B'

    Com essa mensagem de erro

    Msg 8120, Level 16, State 1, Line 1
    Column 'TITMMOV.QUANTIDADE' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    Obrigado a todos..
    quinta-feira, 20 de agosto de 2009 19:16
  • Oi Ronnie

    Agora só falta um detalhe, acho q o teu agrupamento do teu select está errado.

    O group by deve ser aplicado somente no select mais externo, algo mais ou menos assim:

    Select 
       N.Campo1,
       N.Campo2,
       Sum(N.QTD*N.Valor) as Total
    From
    (
    Select Campo1, Campo2, Qtd, Valor
    From Nome_Tabela
    /* Aqui não tem group by*/
    )
    N
    Group By N.Campo1, N.Campo2

    Por favor,

    Poste o teu ultimo select, este que apresentou o erro

    Msg 8120, Level 16, State 1, Line 1
    Column 'TITMMOV.QUANTIDADE' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    que posso te ajudar mais facilmente.

    Abraço,

    Aaron Bock
    quinta-feira, 20 de agosto de 2009 20:54
  • Aaron, obrigado, ai esta o SQl. ele esta comentando, com o que vo tinha falado anteriomente..
    Obrigado

     SELECT
    N.[GRUPO MATERIAS],
    SUM(N.QUANTIDADE * N.PRECOUNITARIO) AS [VALOR TOTAL],
    N.[EMPRESA$]
    From
    (
    SELECT
    case
    WHEN MIN (TP.CODIGOPRD) LIKE '01.01%' THEN '01.01 - ARGAMASSA '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.02%' THEN '01.02 - ACOS E METAIS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.03%' THEN 'AGREGADOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.04%' THEN 'BETUMINOSO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.05%' THEN 'MATERIAIS ELETRICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.06%' THEN 'MATERIAL DE PINTURA'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.07%' THEN 'TUBOS E CONEXOES'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.08%' THEN 'MADEIRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.09%' THEN 'BLOCOS CERÂMICOS E DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.11%' THEN 'REVESTIMENTOS CERAMICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.12%' THEN 'PRE MOLDADOS DE CONCRETO'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.13%' THEN 'METAIS SANITARIOS E FERRAGENS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.14%' THEN 'LOUCAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.15%' THEN 'TELHAS '
    WHEN MIN (TP.CODIGOPRD) LIKE '01.16%' THEN 'DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '01.17%' THEN 'MARMORES E GRANITOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.01%' THEN 'MANUT. MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.02%' THEN 'SERVIÇOS DIVERSOS - OBRAS'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.03%' THEN 'ÓLEO DIESEL'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.04%' THEN 'ADITIVO'
    WHEN MIN (TP.CODIGOPRD) LIKE '02.05%' THEN 'CONCRETO USINADO'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.01%' THEN 'ÓLEO DIESEL/LUBRIFICANTE'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.02%' THEN 'GRAXA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.05%' THEN 'GASOLINA'
    WHEN MIN (TP.CODIGOPRD) LIKE '03.06%' THEN 'ÁLCOOL'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.01%' THEN 'MATERIAL LIMPEZA'
    WHEN MIN (TP.CODIGOPRD) LIKE '04.02%' THEN 'MATERIAL ESCRITÓRIO'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' THEN 'PECAS MECANICA CATERPILLAR'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.01%' OR
     MIN (TP.CODIGOPRD) LIKE '05.04%' OR
     MIN (TP.CODIGOPRD) LIKE '05.06%' OR
     MIN (TP.CODIGOPRD) LIKE '05.07%' OR
     MIN (TP.CODIGOPRD) LIKE '05.08%' OR
     MIN (TP.CODIGOPRD) LIKE '05.09%'
    THEN 'PECAS A'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.10%' THEN 'ELÉTRICA'
    /*WHEN MIN (TP.CODIGOPRD) LIKE '05.11%' OR              -- Aaron, conforme voce falou --
     MIN (TP.CODIGOPRD) LIKE '05.14%' THEN  OR
     MIN (TP.CODIGOPRD) LIKE '05.16%' THEN  OR
     MIN (TP.CODIGOPRD) LIKE '05.17%' THEN  OR
     MIN (TP.CODIGOPRD) LIKE '05.18%' THEN 
    THEN 'PECAS B'*/
    WHEN (MIN (TP.CODIGOPRD) LIKE '05.11%') OR               --outro exemplo--
     (MIN (TP.CODIGOPRD) LIKE '05.14%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.16%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.17%') OR
     (MIN (TP.CODIGOPRD) LIKE '05.18%')
    THEN 'PECAS B'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.20%' THEN 'FILTROS'
    WHEN MIN (TP.CODIGOPRD) LIKE '05.21%' THEN 'MATERIAL RODANTE/PNEUS'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.01%' THEN 'USO MECÂNICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '06.02%' THEN 'USO OBRA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.01%' THEN 'ELETRODOMÉSTICOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.02%' THEN 'INFORMÁTICA'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.03%' THEN 'VEÍCULOS LEVES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.04%' THEN 'CAMINHÕES'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.05%' THEN 'MÁQUINAS E EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '07.06%' THEN 'MÓVEIS E UTENSÍLIOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.01%' THEN 'EPI/EPC'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.02%' THEN 'EXTINTORES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.04%' THEN 'TREINAMENTO DIVERSOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.05%' THEN 'MAO DE OBRA TERCEIRIZADA'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.06%' THEN 'BRINDES'
    WHEN MIN (TP.CODIGOPRD) LIKE '08.07%' THEN 'TREINAMENTOS(INATIVO)'
    WHEN MIN (TP.CODIGOPRD) LIKE '80.01%' THEN 'CHECK LIST DE EQUIPAMENTOS'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.01%' THEN 'TELEFONE'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.02%' THEN 'ENERGIA'
    WHEN MIN (TP.CODIGOPRD) LIKE '20.03%' THEN 'AGUA '
    WHEN MIN (TP.CODIGOPRD) LIKE '20.04%' THEN 'TV A CABO'
    WHEN MIN (TP.CODIGOPRD) LIKE '99.01%' THEN 'SERVIÇOS DIVERSOS'
    ELSE 'SEM CLASSIFICACAO'
    END AS 'GRUPO MATERIAS',
    T1.QUANTIDADE,
    T1.PRECOUNITARIO,
    TMOV.CODCOLIGADA AS 'EMPRESA$' FROM TMOV
    INNER JOIN TITMMOV AS T1 ON T1.CODCOLIGADA = TMOV.CODCOLIGADA AND T1.IDMOV = TMOV.IDMOV
    INNER JOIN TPRD AS TP ON TP.CODCOLIGADA = TP.CODCOLIGADA AND T1.IDPRD = TP.IDPRD
    WHERE CODTMV IN ('1.2.01','1.2.11','1.2.12','1.2.05','1.2.06','1.2.09','1.2.14') AND TMOV.DATAEMISSAO BETWEEN '2009-01-01' AND '2009-08-11'  AND TP.ULTIMONIVEL = '1'
    )

    N

    GROUP BY [GRUPO MATERIAS], [EMPRESA$]
    ORDER BY [GRUPO MATERIAS]

    Mensagem de Erro

    Msg 8120, Level 16, State 1, Line 1
    Column 'TITMMOV.QUANTIDADE' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    quinta-feira, 20 de agosto de 2009 20:59
  • O problema é com a função min() que é uma função de agregação, como foi retirado o group by do teu select, deve ser usada outra função para identificar os grupos.

    Tenta usar isso:

    SELECT 
    N.[GRUPO MATERIAS], 
    SUM(N.QUANTIDADE * N.PRECOUNITARIO) AS [VALOR TOTAL],
    N.[EMPRESA$]
    From
    (
    SELECT 
    case
    WHEN LEFT (TP.CODIGOPRD,5) = '01.01' THEN '01.01 - ARGAMASSA '
    WHEN LEFT (TP.CODIGOPRD,5) = '01.02' THEN '01.02 - ACOS E METAIS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.03' THEN 'AGREGADOS' 
    WHEN LEFT (TP.CODIGOPRD,5) = '01.04' THEN 'BETULEFTOSO'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.05' THEN 'MATERIAIS ELETRICOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.06' THEN 'MATERIAL DE PINTURA'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.07' THEN 'TUBOS E CONEXOES'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.08' THEN 'MADEIRAS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.09' THEN 'BLOCOS CERÂMICOS E DE CONCRETO'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.11' THEN 'REVESTIMENTOS CERAMICOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.12' THEN 'PRE MOLDADOS DE CONCRETO'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.13' THEN 'METAIS SANITARIOS E FERRAGENS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.14' THEN 'LOUCAS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.15' THEN 'TELHAS '
    WHEN LEFT (TP.CODIGOPRD,5) = '01.16' THEN 'DIVERSOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '01.17' THEN 'MARMORES E GRANITOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.01' THEN 'MANUT. MÁQUINAS E EQUIPAMENTOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.02' THEN 'SERVIÇOS DIVERSOS - OBRAS'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.03' THEN 'ÓLEO DIESEL'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.04' THEN 'ADITIVO'
    WHEN LEFT (TP.CODIGOPRD,5) = '02.05' THEN 'CONCRETO USINADO'
    WHEN LEFT (TP.CODIGOPRD,5) = '03.01' THEN 'ÓLEO DIESEL/LUBRIFICANTE'
    WHEN LEFT (TP.CODIGOPRD,5) = '03.02' THEN 'GRAXA'
    WHEN LEFT (TP.CODIGOPRD,5) = '03.05' THEN 'GASOLINA' 
    WHEN LEFT (TP.CODIGOPRD,5) = '03.06' THEN 'ÁLCOOL' 
    WHEN LEFT (TP.CODIGOPRD,5) = '04.01' THEN 'MATERIAL LIMPEZA' 
    WHEN LEFT (TP.CODIGOPRD,5) = '04.02' THEN 'MATERIAL ESCRITÓRIO' 
    WHEN LEFT (TP.CODIGOPRD,5) = '05.01' THEN 'PECAS MECANICA CATERPILLAR' 
    WHEN LEFT (TP.CODIGOPRD,5) = '05.01' OR
     LEFT (TP.CODIGOPRD,5) = '05.04' OR
     LEFT (TP.CODIGOPRD,5) = '05.06' OR
     LEFT (TP.CODIGOPRD,5) = '05.07' OR
     LEFT (TP.CODIGOPRD,5) = '05.08' OR
     LEFT (TP.CODIGOPRD,5) = '05.09' 
    THEN 'PECAS A'
    WHEN LEFT (TP.CODIGOPRD,5) = '05.10' THEN 'ELÉTRICA'
    WHEN (LEFT (TP.CODIGOPRD,5) = '05.11') OR             
     (LEFT (TP.CODIGOPRD,5) LIKE '05.14') OR
     (LEFT (TP.CODIGOPRD,5) LIKE '05.16') OR
     (LEFT (TP.CODIGOPRD,5) LIKE '05.17') OR
     (LEFT (TP.CODIGOPRD,5) LIKE '05.18') 
    THEN 'PECAS B'
    WHEN LEFT (TP.CODIGOPRD,5) = '05.20' THEN 'FILTROS'
    WHEN LEFT (TP.CODIGOPRD,5) = '05.21' THEN 'MATERIAL RODANTE/PNEUS'
    WHEN LEFT (TP.CODIGOPRD,5) = '06.01' THEN 'USO MECÂNICA'
    WHEN LEFT (TP.CODIGOPRD,5) = '06.02' THEN 'USO OBRA'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.01' THEN 'ELETRODOMÉSTICOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.02' THEN 'INFORMÁTICA'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.03' THEN 'VEÍCULOS LEVES'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.04' THEN 'CALEFTHÕES'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.05' THEN 'MÁQUINAS E EQUIPAMENTOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '07.06' THEN 'MÓVEIS E UTENSÍLIOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.01' THEN 'EPI/EPC'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.02' THEN 'EXTINTORES'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.04' THEN 'TREINAMENTO DIVERSOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.05' THEN 'MAO DE OBRA TERCEIRIZADA'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.06' THEN 'BRINDES'
    WHEN LEFT (TP.CODIGOPRD,5) = '08.07' THEN 'TREINAMENTOS(INATIVO)'
    WHEN LEFT (TP.CODIGOPRD,5) = '80.01' THEN 'CHECK LIST DE EQUIPAMENTOS'
    WHEN LEFT (TP.CODIGOPRD,5) = '20.01' THEN 'TELEFONE'
    WHEN LEFT (TP.CODIGOPRD,5) = '20.02' THEN 'ENERGIA'
    WHEN LEFT (TP.CODIGOPRD,5) = '20.03' THEN 'AGUA '
    WHEN LEFT (TP.CODIGOPRD,5) = '20.04' THEN 'TV A CABO'
    WHEN LEFT (TP.CODIGOPRD,5) = '99.01' THEN 'SERVIÇOS DIVERSOS'
    ELSE 'SEM CLASSIFICACAO'
    END AS 'GRUPO MATERIAS', 
    T1.QUANTIDADE,
    T1.PRECOUNITARIO,
    TMOV.CODCOLIGADA AS 'EMPRESA$' FROM TMOV 
    INNER JOIN TITMMOV AS T1 ON T1.CODCOLIGADA = TMOV.CODCOLIGADA AND T1.IDMOV = TMOV.IDMOV
    INNER JOIN TPRD AS TP ON TP.CODCOLIGADA = TP.CODCOLIGADA AND T1.IDPRD = TP.IDPRD
    WHERE CODTMV IN ('1.2.01','1.2.11','1.2.12','1.2.05','1.2.06','1.2.09','1.2.14') AND TMOV.DATAEMISSAO BETWEEN '2009-01-01' AND '2009-08-11'  AND TP.ULTIMONIVEL = '1'
    )
    
    N
    
    GROUP BY [GRUPO MATERIAS], [EMPRESA$]
    ORDER BY [GRUPO MATERIAS]
    


    Abraço,

    Aaron Bock

    • Marcado como Resposta Ronnie Von sexta-feira, 21 de agosto de 2009 17:19
    • Não Marcado como Resposta Ronnie Von sexta-feira, 21 de agosto de 2009 17:20
    • Marcado como Resposta Ronnie Von sexta-feira, 21 de agosto de 2009 17:25
    quinta-feira, 20 de agosto de 2009 21:24
  • Obrigado  a todos que me ajudaram. Aaron valeu mesmo pela ajuda e pela paciencia, bom saber que tem pessoas disponiveis para ajudar. valeu mesmo..

    esse era o resultado que eu espera, vou fazer mais uns testes aqui e caso tenha duvida te falo....


    obrigado

    sexta-feira, 21 de agosto de 2009 17:24
  • Valeu Ronnie.

    Foi um prazer te ajudar!!!!

    Abraço,

    Aaron Bock
    sexta-feira, 21 de agosto de 2009 19:01
  • Obrigado.. Show de bola, consegui validar o relatorio..

    sexta-feira, 21 de agosto de 2009 20:08