ERRO NO SELECT² RS

THIAGOEMECAL 03/02/2011 11:12:40
#364207
Pessoal nao tem como utilizar o distinc count num select?!


sqlCaixa1 = [Ô]select sum (valor) as valorDinheiro, count(chave)as varPessoasSql,
Citação:

COUNT(distinct DATA) AS RETORNO

from caixa where tipo = [ô]E[ô] and documento <> [ô]CUPOM FISCAL[ô] [Ô]
If IsDate(DT1) And IsDate(DT2) Then
sqlCaixa1 = sqlCaixa1 & [Ô] AND format(DATA,[ô]yyyy/mm/dd[ô]) between [ô][Ô] & Format(DT1, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] and [ô][Ô] & Format(DT2, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô][Ô]
End If
Set rsCaixa = db.OpenRecordset(sqlCaixa1, dbOpenDynaset)
PARREIRA 03/02/2011 11:21:41
#364208
Resposta escolhida
O distinct só serve para linhas que são exatamente iguais,você não consegue colocar o distinct em um unico campo,ele é valido para linha toda logo ele vem sempre denominado depois do select tipo Select Distinc ......
O que você pretende fazer?
THIAGOEMECAL 03/02/2011 11:25:51
#364210
entao estava kerendo ver q quantidade de dias q teve movimento na tabela caixa!!

01/01
02/01
03/01 = 3 dias!!

soh q na tabala caixa tem muitos registros de cada dia!

entedeu ?? rs

XXXANGELSXXX 03/02/2011 11:37:14
#364212
utilize group by para isso.. ou até mesmo o count
PARREIRA 03/02/2011 11:40:23
#364214
Entendi,o que dá para fazer é um subselect.

sqlCaixa1 = [Ô]select sum (valor) as valorDinheiro,COUNT(distinct(data) )as cont_data,
Citação:
COUNT(distinct DATA) AS RETORNO
from caixa where tipo = [ô]E[ô] and documento <> [ô]CUPOM FISCAL[ô] [Ô]
If IsDate(DT1) And IsDate(DT2) Then
sqlCaixa1 = sqlCaixa1 & [Ô] AND format(DATA,[ô]yyyy/mm/dd[ô]) between [ô][Ô] & Format(DT1, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] and [ô][Ô] & Format(DT2, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô][Ô]
End If
Set rsCaixa = db.OpenRecordset(sqlCaixa1, dbOpenDynaset)

tenta assim..
THIAGOEMECAL 03/02/2011 11:48:07
#364224
não deu certo PARREIRA, deu funcao distinct indefinida na expressao

e LVFIOROT é a quantidade!
PARREIRA 03/02/2011 11:57:53
#364231
Como que está seu select agora?
THIAGOEMECAL 03/02/2011 12:03:52
#364233
esta assim,


sqlCaixa1 = [Ô]select sum (valor) as valorDinheiro, count(chave)as varPessoasSql, COUNT(distinct(data)) as varRetornoDias from caixa where tipo = [ô]E[ô] and documento <> [ô]CUPOM FISCAL[ô] [Ô]
If IsDate(DT1) And IsDate(DT2) Then
sqlCaixa1 = sqlCaixa1 & [Ô] AND format(DATA,[ô]yyyy/mm/dd[ô]) between [ô][Ô] & Format(DT1, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] and [ô][Ô] & Format(DT2, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô][Ô]
End If
Set rsCaixa = db.OpenRecordset(sqlCaixa1, dbOpenDynaset)

PARREIRA 03/02/2011 12:06:50
#364234
Qual banco de dados está usando?
THIAGOEMECAL 03/02/2011 12:07:23
#364235
access!
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas