none
CONTAR REGISTROS DISTINTOS RRS feed

  • Discussão Geral

  • Olá,

    Preciso de uma ajuda em uma consulta ao meu banco de dados Access à partir de um projeto VB6.

    Preciso contar os dados de um campo, onde esses dados sejam distintos um do outro. já tentei usar count(distinct ID) porém aparece um erro informando que falta argumentos.

    Exemplo:

    ID

    1

    1

    2

    2

    3

    4

    Está contando duas vezes os dados repetidos.

    Segue código utilizado:

    rs.Open "Select Data_Cad, count(ID) as rID, count(Cod_Item) as rItens, sum(Val_Total) as rValor_Venda, sum(Val_Lucro) as rValor_Lucro from TBL_PDV WHERE Data_Cad between # " & VBA.Format(dtpInicial.Value, "mm/dd/yyyy") & "# and #" & VBA.Format(dtpFinal.Value, "mm/dd/yyyy") & "#group by Data_Cad ", db, 3, 3


    • Editado Everton_Delmiro sexta-feira, 11 de dezembro de 2015 03:24
    • Tipo Alterado Marcos SJ segunda-feira, 21 de dezembro de 2015 12:02 Pergunta Inicial respondida/Costumer rejected solution
    sexta-feira, 11 de dezembro de 2015 03:20

Todas as Respostas

  • use o count(distinct ID):

    rs.Open "Select Data_Cad, count(distinct ID) as rID, count(Cod_Item) as rItens, sum(Val_Total) as rValor_Venda, sum(Val_Lucro) as rValor_Lucro from TBL_PDV WHERE Data_Cad between # " & VBA.Format(dtpInicial.Value, "mm/dd/yyyy") & "# and #" & VBA.Format(dtpFinal.Value, "mm/dd/yyyy") & "#group by Data_Cad ", db, 3, 3

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 11 de dezembro de 2015 11:46
    Moderador
  • William,

    Já tentei desta forma, porém da um erro "Erro de sintaxe (operador faltando) na expressão de consulta 'count(distinct ID)'."

    Existe outra forma, ou preciso incluir mais alguma função nesta consulta?

    sexta-feira, 11 de dezembro de 2015 13:08
  • Qual é a base de dados? SQL Server?

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 11 de dezembro de 2015 14:04
    Moderador
  • Access.
    sexta-feira, 11 de dezembro de 2015 16:46
  • Neste caso nao existe count(distinct).

    Access é um banco limitado que nao utiliza o SQL Padrao.. para simular o count distinct voce vai ter que fazer:

    http://www.geeksengine.com/article/access-distinct-count.html

    basicamente voce vai ter que fazer um subquery:

    select count(id) as ids
    from
    (
        select distinct id from table
    )


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    sexta-feira, 11 de dezembro de 2015 17:16
    Moderador
  • William, Muito obrigado. Uma última dúvida : como adapto esse meu código com essa subquery?
    sexta-feira, 11 de dezembro de 2015 18:02
  • Boa tarde,

    Preciso muito desta ajuda...como adapto esse meu código com uma subquery para contar ID distinto?

    rs.Open "Select Data_Cad, count(ID) as rID, count(Cod_Item) as rItens, sum(Val_Total) as rValor_Venda, sum(Val_Lucro) as rValor_Lucro from TBL_PDV WHERE Data_Cad between # " & VBA.Format(dtpInicial.Value, "mm/dd/yyyy") & "# and #" & VBA.Format(dtpFinal.Value, "mm/dd/yyyy") & "#group by Data_Cad ", db, 3, 3



    sábado, 12 de dezembro de 2015 18:14
  • Olà. Algum retorno?
    segunda-feira, 14 de dezembro de 2015 18:11
  • Everton_Delmiro,

    Sua pergunta inicial já foi respondida?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 14 de dezembro de 2015 18:42
  • Ainda não...preciso saber como montar essa subquery com o código enviado.
    segunda-feira, 14 de dezembro de 2015 21:19
  • Sua pergunta inicial foi essa?

    Você pode marcar a resposta da sua pergunta inicial e prosseguir com os detalhes mesmo com a resposta marcada.


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Editado Marcos SJ terça-feira, 15 de dezembro de 2015 11:48
    terça-feira, 15 de dezembro de 2015 11:48
  • Certo.

    Você pode me ajudar? Preciso concluir este projeto.

    terça-feira, 15 de dezembro de 2015 16:20
  • Pessoal algum retorno??
    quinta-feira, 17 de dezembro de 2015 18:50
  • Ninguém vai ajudar???
    sábado, 19 de dezembro de 2015 12:37
  • ??????
    sexta-feira, 25 de dezembro de 2015 14:06