AVANCADO: SQL COM GROUP BY DATA

RABORGES 24/02/2012 17:15:21
#395552
Pessoal, depois de muito pesquisar, estou tendo dificuldades em uma consulta:

Tenho um programa em VB6 que usa Access com SQL.
Faço uma consulta agrupando por data, mas no campo data, guardo também a hora (ex.: dd/mm/yyy hh:mm:ss).
Mas o resultado está agrupando por data e hora. Gostaria de agrupar somente pela data, sem a hora.
Já tentei [Ô]GROUP BY Format(datavenda, [ô]dd/mm/yyyy[ô])[Ô] mas dá erro, pois tenho alguns campos com soma.

Veja um exemplo de como está a parte do SQL:
SELECT datavenda as Data, SUM(valorvenda) as Valor, SUM(qtdvenda) as Qtd
FROM Venda
WHERE datavenda >= # & DataInicio & #
GROUP BY datavenda ORDER BY datavenda DESC

O resultado segue assim:
12/02/2012 1.900,00 35
10/02/2012 780,00 12
10/02/2012 1.00,00 21

Era para vir a soma por dia.

Desculpe o longo texto, mas foi o que consegui melhor explicar.
Obrigado.
RABORGES 24/02/2012 17:45:33
#395556
Os valores realmente são diferentes.
Mas deve haver algum modo de agrupar somente pela data, mesmo que seja gambiarra...
Em SQL existe a função Convert (), mas não funciona no VB6.

Problema já existe, solução que é necessária.
MARCELO.TREZE 24/02/2012 18:44:19
#395559
tenta assim

SELECT datavenda as Data, SUM(valorvenda) as Valor, SUM(qtdvenda) as Qtd 
FROM Venda
WHERE Date(datavenda) >= # & Format(DataInicio,[Ô]mm/dd/yyyy[Ô]) & #
GROUP BY Date(datavenda) ORDER BY Date(datavenda) DESC
LLAIA 24/02/2012 20:07:40
#395577
Creio que isso resolva:

SELECT Format(datavenda,[ô]dd/mm/yyyy[ô]) as [txt-color=#e80000][Data][/txt-color], SUM(valorvenda) as Valor, SUM(qtdvenda) as Qtd 
FROM Venda
WHERE datavenda >= # & DataInicio & #
GROUP BY Format(datavenda,[ô]dd/mm/yyyy[ô]) ORDER BY Format(datavenda,[ô]dd/mm/yyyy[ô]) DESC


No Access, quando se formata um campo na cláusula SELECT e ele tem que ser usado no Group By e Order By, toda a estrutura da formatação, passa a ser a assinatura do campo. é meio esquisito mas é assim mesmo.

Cuidado com as palavras reservadas! Em algumas versões do Access, a palavra Data destacada em vermelho não ia passar. Resolve-se colocando colchetes.

OMAR2011 24/02/2012 20:39:52
#395584
Leandro Laia.

Caramba;nunca tinha feito uma consulta com data com aspas simples e desse jeito,pelo menos não lembro.Deu certo.
RABORGES 29/02/2012 10:41:59
#396018
Leandro e Marcelo, valeu pela dica.
Utilizando as dicas dos dois consegui resolver o problema.
Somente Format(datavenda, [ô]dd/mm/yyyy[ô]) não deu certo. Então, usei a função DateValue() em cada menção de data na consulta, e assim deu certo.

Quanto à palavra [data], é só um exemplo que utilizei aqui.

Obrigado aos dois.
Tópico encerrado , respostas não são mais permitidas