CONSULTA SQL NUMERO DE OCORRENCIAS

PEPE.LEGAL 02/06/2005 00:23:25
#86460
Será que alguem consegue resolver essa questao? é o seguinte, preciso construir uma consulta aonde, para exemplificar, preciso saber quantas vezes cada cliente pediu pizza.
Por exemplo , na tabela eu registrei que no dia 10 ele pediu 1 pizza de muzzarela e 2 pizzas de calabreza e no dia 12 pediu 1 pizza de atum. Quero saber quantas vezes cada cliente pediu pizza, 2 vezes, correto? mas como fica isso na consulta.

idcliente data qtd pizza
1222 10/05/2005 1 muzzarela
1222 10/05/2005 2 calabreza
.
. pedidos de outros clientes
.
1222 12/05/2005 1 atum


resultado

idcliente vezes
1222 2
1223 5
. . . etc


[txt-color=#008000]Título Original ("Preciso de Ajuda, Consulta SQL") alterado por KPellaJr [/txt-color]
JEAN.JEDSON 02/06/2005 07:33:39
#86467
Resposta escolhida
olá...

pode fazer assim:

SELECT IdCliente, Count(IdCliente) FROM TabelaPedidos GROUP BY IdCliente
TRUHILLO 02/06/2005 07:43:59
#86469
Assim retornaria 3, Jean.

Meus programas de automação funcionam assim: tenho o cadastro de vendas e o histórico de produtos que o cliente comprou.

No cadastro de vendas, ou pedidos no seu caso, podemos colocar a data, codigo do cliente e o valor do pedido.
No histórico de produtos colocamos quais os produtos que o cliente já pediu, que vc já tem pronto, e é o seu cadastro de pedidos atual.

No cadastro de vendas seria assim:

idcliente Data Valor
1222 10/05/2005 14,80
......
1222 12/05/2005 7,90

Aí é só colocar o select mostrado pelo Jean no cadastro de vendas

SELECT IdCliente, Count(IdCliente) as Contador FROM TabelaVendas GROUP BY IdCliente

Msgbox "O cliente fez " & rs!Contador & " pedidos."
USUARIO.EXCLUIDOS 02/06/2005 08:18:01
#86472
Fiz essa query num sistema meu, e tentei adaptar para o que vc está precisando:

SELECT C.COD_CLIENTE, P.COD_CLIENTE, COUNT(ACS.COD_CLIENTE) FROM CLIENTES C, PEDIDOS P WHERE C.COD_ALUNO = P.COD_ALUNO GROUP BY A.COD_ALUNO, A.NOME_ALUNO HAVING COUNT(P.COD_CLIENTE) >= 2


Essa query retornaria todos os clientes com mais de dois pedidos. Você pode colocar o campo da data no GROUP BY para poder ordenar por datas, ok?
JEAN.JEDSON 02/06/2005 08:58:26
#86477
putz... é verdade...
vou dar uma olhada novamente...
JEAN.JEDSON 02/06/2005 11:26:16
#86514
demorou, mas saiu:

select idcliente, count(data) as qtde
from
(select distinct idcliente, data
from tabela1)
group by idcliente
LCSD 02/06/2005 11:31:40
#86515
Pepe Legal

Bom Dia

Lendo a tua dúvida eu é que fiquei na dúvida, pelo que eu entendi são só 2 Tabelas, Clientes e Pedidos, ou seja, neste caso não existe o Detalhes do Pedido, certo?

Pergunto isto, porque cada Pizza, geralmente, seria um membro da Tabela Detalhes do Pedido, logo se um Pedido contivesse 1 Pizza Atum e 2 Mussarela seria só 1 ocorrência, mas se foram em Pedidos diferentes, já seriam 2 ocorrências.

Até Breve
[s50]
JEAN.JEDSON 02/06/2005 11:36:58
#86516
bem... teria que considerar isso tbm...
eh eh eh
PEPE.LEGAL 03/06/2005 01:13:36
#86712
Muito bom, resolvi o problema o resultado foi:

select idcliente, count(nvenda) as qtde from
(select distinct idcliente,nvenda
from tbvenda )
group by idcliente

na solucao do amigo Jean contou a data porem o mesmo cliente poderia fazer 2 pedidos no mesmo dia, assim adicionei mais uma variavel que seria o numero do pedido que é unico por pedido apesar do numero de pizzas. E dessa forma deu certo , muito obrigado aos amigos que colaboraram.
Tópico encerrado , respostas não são mais permitidas