Clipper On Line • Ver Tópico - Ajuda com SQL
Página 1 de 1

Ajuda com SQL

MensagemEnviado: 17 Fev 2012 10:48
por binho_fasa
Amigos, preciso de uma ajuda com SQL. Estou usando o ADS modo local e preciso criar um SQL para retornar registros dentro de um período.

Tabela VENDAS.DBF
Emissao DATE
Hora CHAR (8)
Cliente CHAR (50)
Valor NUMERIC 13, 2

Deve retornar dados no intervalo entre 01/01/2012 00:00:00 a 01/31/2012 18:00:00

EX:
Emissao Hora Cliente Valor
01/01/2012 09:01:27 CARLOS ANTONIO 156.12
01/05/2012 10:17:21 MARIA JOSE 318.15
01/07/2012 11:15:07 NATALIA ALVES 97.00
01/22/2012 11:37:12 FELIPE MOTA 519.15
01/31/2012 19:20:08 JONAS STEWART 220.80
02/01/2012 10:08:20 CARLA SILVA 178.40

O Resultado deverá ser
01/01/2012 09:01:27 CARLOS ANTONIO 156.12
01/05/2012 10:17:21 MARIA JOSE 318.15
01/07/2012 11:15:07 NATALIA ALVES 97.00
01/22/2012 11:37:12 FELIPE MOTA 519.15

SQL
select * from SALES WHERE CAST(CAST(Emissao as CHAR) & Hour AS SQL_TIMESTAMP)
BETWEEN '01-01-2012 00:00:00' AND '01-31-2012 18:00:00'

RETURN: 'ERROR 7200 EXPECTED LEXICAL ELEMENT NOT FOUND'

Não tenho bons conhecimentos em SQL. Alguém pode me ajudar?

Obrigado.

Ajuda com SQL

MensagemEnviado: 17 Fev 2012 14:36
por alxsts
Olá!

Está dando erro de sintaxe na chamada encadeada da função Cast.

Não conheço o SQL do ADS. O exemplo abaixo funciona em SQL Server:
-- Considerando que a coluna emissao seja to tipo datetime e a coluna hora seja caracter
SELECT emissao, hora, cliente, valor
  FROM vendas
WHERE RTrim( Convert( Char, emissao, 112)) + Replace( hora, ':','' ) BETWEEN '20120101000000' AND '20120131180000'