Pular para o conteúdo
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #101528
    luiusique
    Participante

      Ola 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/2011

      QUAL 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.

      #101529
      diegolenhardt
      Participante

        distinct count

        #101530
        luiusique
        Participante

          NAO 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

          #101531
          diegolenhardt
          Participante

            da pra fazer um select min
            e colocar no group by o cod e a DatadeNegociacao

            #101533
            luiusique
            Participante

              NAO INTENDI!! TEM COMO ROLA UM EXMPLO AI NAO?!!??!

              #101535
              burga
              Participante

                Como o Diego mesmo falou, dá pra fazer com count e distinct…

                select DatadeNegociacao, count(distinct CodCliente)
                from tabela group by DatadeNegociacao;

                #101539
                luiusique
                Participante

                  intaum 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 2

                  o 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

                  #101542
                  rman
                  Participante

                    @luiusique

                    Outra solução:


                    SELECT CODCLIENTE, DATANEGOCIACAO, COUNT(*) TOTAL
                    FROM TABELA
                    GROUP BY CODCLIENTE, DATANEGOCIACAO

                    #101584
                    burga
                    Participante

                      Oi, é 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.

                      #101589
                      luiusique
                      Participante

                        obrigado burga!!!! era exatamente isso que eu estava prescisando!!!
                        vlw mesmo

                      Visualizando 10 posts - 1 até 10 (de 10 do total)
                      • Você deve fazer login para responder a este tópico.
                      plugins premium WordPress