Dúvidas Sql, com count

5 respostas
D

Olá galera, estou com uma dificuldade… tenho que gerar um relatório e nesse relatório tem que ter quantos tipos de itens teve em cada “ordem de serviço”…

EX: ordem de serviço = 1 teve 5 tipo ‘A’, 2 tipo ‘B’ …

pois bem é só usar o COUNT(tipo) AS tipoProd ( ira me retorna o total de tipos!!! e preciso das quantidades por tipo)

mais tenho que filtrar esse tipo em cada COUNT(); se eu colocar no WHERE irá filtra somente aquele tipo e não todos.

desde já agradeço.

5 Respostas

D

Utilize a clausula GROUP BY

Exemplo:

Select count(valor) From Clientes Group By valor

Você precisa observar todos os valores que se repetem, caso repetirem, você precisa agrupar também.

pmlm

Convém saber a que tipo corresponde cada contagem…

D

Ok!!! vlw pela ajuda, obrigado…

ViniGodoy

Movido para o fórum de persistência. Por favor, leia com atenção a descrição dos fóruns antes de postar.

D

Olá, olha eu consegui resolver os "problemas" do relatorio individualmente so que o conjunto complico minha vida.

nesse relatório tem que ter a numeração de selos utilizados o inicio é o fim. entao eu resolvi da seguinte forma.

SELECT 
     MIN(os_dados_extintor.`SELO`) AS MenorSeloOs,
     MAX(os_dados_extintor.`SELO`) AS MaiorSeloOs

FROM `ordem_servico` ordem_servico INNER JOIN `os_dados_extintor` os_dados_extintor ON
     ordem_servico.`ID` = os_dados_extintor.`ordem_servico_ID`,
WHERE
     ordem_servico.`DTA_ENTRADA` BETWEEN $P{dataInicio} AND $P{dataFim}

tem que mandar o selo que tem em estoque!!!! que é em buscado de outra tabela.

SELECT 
     MIN(selo.`NUMERO`) AS MenorSelo,
     MAX(selo.`NUMERO`) AS MaiorSelo

FROM  `selo` selo

WHERE
    selo.`STATUS` LIKE false
. . . e por fim preencher o relatorio com as ordem de serviço e as quantidades de tipos feito em cada ordem de serviço.

que foi o que vc's me ajudaram.

SELECT 
	os_dados_extintor.TIPO, COUNT(*) AS contagem 
 
FROM 
	os_dados_extintor  GROUP BY os_dados_extintor.TIPO

entao o corpo do relatorio vai ter os seguintes itens:

dia, Nº ordem serviço, Nº venda, QTDES-Tipo'A', Tipo'B', Tipo'C', Tipo'D', Tipo'E', Total, Selo Usado nessa Ordem Serviço, TotalSelo.

Creio que vao precisar da estrutura segue abaixo.

'ordem_servico'

ID
cliente_ID
ID_VENDA
CLIENTE_RAZAO
DTA_ENTRADA
DTA_SAIDA
RESP_EMPRESA
RESP_TECNICO

da Tab. do BD os_dados_extintor so vai precisar desses dados.

os_dados_extintor

ID
ordem_servico_ID
SELO
TIPO

Olha agradeço a atenção de todos, e ficarei grato pela ajuda...

Criado 6 de julho de 2011
Ultima resposta 7 de jul. de 2011
Respostas 5
Participantes 4