QUERY DE CONSULTA

GUIGOR 18/01/2013 10:08:01
#417679
Bom dia eu tenho uma tabela com a seguinte estrutura:
Nome tipo campo
DATAHORA_FIM ==> TIMESTAMP
TOTAL_PAGO ==> NUMERIC(12,2)

entao eu estou fazendo um query para pegar os valores vendidos por hora ou seja eu preciso agrupar todos que forem 14: 15: 16 ...... e assim por diante
eu to fazendo a seguinte query mas nao ta dando certo:

select sum(total_pago), datahora_fim from documento
where descricao = [ô]Venda[ô]
group by datahora_fim

o retorno é o seguinte:

2.000,00 09.01.2013 14:43
30,00 27.12.2012 11:06
22,00 09.01.2013 14:47
0,00 09.01.2013 14:35


ou seja eu precisaria do seguinte

14:00 horas vendeu 2022,00
11:00 horas vendeu 30,00



qual seria a solução neste caso?

LLAIA 18/01/2013 10:29:37
#417685
passe uma função de extração de hora no campo datahora_fim, tanto na seção do select quanto na seção do group by. Veja qual é a função no banco que vc está usando. no access seria:

select sum(total_pago), Hour(datahora_fim) as hora from documento
where descricao = [ô]Venda[ô]
group by Hour(datahora_fim)
GUIGOR 18/01/2013 10:46:56
#417690
no fire bird deu erro

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 25.
Hour.


nao aceita o Hour
LLAIA 18/01/2013 12:03:35
#417695
Deu erro porque o FB não tem a função Hour. Se não estou enganado é EXTRACT
MARCELO.TREZE 19/01/2013 13:32:17
#417732
Resposta escolhida
tente

select sum(total_pago), EXTRACT(HOUR FROM datahora_fim) as hora from documento
where descricao = [ô]Venda[ô]
group by EXTRACT(HOUR FROM datahora_fim)


ou

select sum(total_pago), EXTRACT(HOUR FROM datahora_fim) as hora from documento
where descricao = [ô]Venda[ô]
group by hora
Tópico encerrado , respostas não são mais permitidas