- Este tópico contém 9 respostas, 4 vozes e foi atualizado pela última vez 14 anos, 4 meses atrás por
luiusique.
-
AutorPosts
-
9 de novembro de 2011 às 7:46 pm #101528
luiusique
ParticipanteOla pessoal estou com a seguinte dificuldade tenho uma base com as seguintes colunas
CodCliente DatadeNegociacao
111 1/10/2011
123 1/10/2011
111 1/10/2011
545 1/10/2011
151 2/10/2011
143 2/10/2011
111 3/10/2011
545 3/10/2011QUAL MEU PROBLEMA: TENHO QUE SOMAR A QUANTIDADE DE CLIENTES DIFERENTES QUE REALIZARAM COMPRAS NO PERIODO. O LANCE E O SEGUINTE NESTE EXEMPLO MESMO O CLIENTE 111 REALIZOU 2 COMPRAS NOS DIA 1/10/2011 E PRESCISO QUE CONTE APENAS 1 COMPRA POR DIA POR CLIENTE.
9 de novembro de 2011 às 8:03 pm #101529diegolenhardt
Participantedistinct count
9 de novembro de 2011 às 8:26 pm #101530luiusique
ParticipanteNAO FUNCIONA PORQUE SE FIZER POR QUE VAI TIRAR TODAS AS RECORRENCIAS DO CLIENTE 111 E NAO E ISSO QUE EU QUERO. QUERO QUE TIRE APENAS AS QUE ACONTECEM NO MESMO DIA
9 de novembro de 2011 às 8:33 pm #101531diegolenhardt
Participanteda pra fazer um select min
e colocar no group by o cod e a DatadeNegociacao9 de novembro de 2011 às 8:38 pm #101533luiusique
ParticipanteNAO INTENDI!! TEM COMO ROLA UM EXMPLO AI NAO?!!??!
9 de novembro de 2011 às 10:33 pm #101535burga
ParticipanteComo o Diego mesmo falou, dá pra fazer com count e distinct…
select DatadeNegociacao, count(distinct CodCliente)
from tabela group by DatadeNegociacao;10 de novembro de 2011 às 2:02 am #101539luiusique
Participanteintaum como eu expliquei eu nao presciso da soma dia a dia. e nao soma no periodo eu presciso de uma funçao que faça esse agrumpamento sem colocar DatadeNegociacao no select. essa soluça apresenta
1/10/2011 3
2/10/2011 2
3/10/2011 2o que eu preciso seria
apenas a conta 7
onde dos 8 valores o cliente 111 que realizou 2 negociaçoes no dia 1/10/2011 sera contado apenas uma vez resultando na contagem 7
10 de novembro de 2011 às 2:11 am #101542rman
Participante@luiusique
Outra solução:
SELECT CODCLIENTE, DATANEGOCIACAO, COUNT(*) TOTAL
FROM TABELA
GROUP BY CODCLIENTE, DATANEGOCIACAO
10 de novembro de 2011 às 11:23 pm #101584burga
ParticipanteOi, é só você pensar mais a fundo… Com aquele select você consegue obter o que você deseja.
SELECT SUM (qtd) FROM (
SELECT DatadeNegociacao,
COUNT(distinct CodCliente) qtd
FROM tabela
GROUP BY DatadeNegociacao)
WHERE DatadeNegociacao
BETWEEN [data1] AND [data2];Muitas vezes nós não passaremos a solução pronta pras pessoas por falta de conhecimento do problema, como um todo, de nossa parte. Mas o caminho nós podemos indicar, aí vai de você refiná-lo pra realidade do seu problema.
Lembrando ainda que no [data1] e [data2] você deve substituir pelas datas inicial e final do período que você deseja calcular… Se não quiser considerar as datas, é só tirar a condição.
11 de novembro de 2011 às 2:33 pm #101589luiusique
Participanteobrigado burga!!!! era exatamente isso que eu estava prescisando!!!
vlw mesmo -
AutorPosts
- Você deve fazer login para responder a este tópico.