Logo Hardware.com.br
Nilaum
Nilaum Membro Junior Registrado
88 Mensagens 4 Curtidas

Consulta SQL

#1 Por Nilaum 20/05/2009 - 15:40
Fala galera!!!
to com um probleminha...
eu uso o delphi 7, banco de dados MySQL e o componente ZEOS pra fazer a conexão com o banco...
eu estou fazendo um instrução pra me retornar c há algum registro na tabela q satisfaça 4 condições e uma delas é que esteja entre duas datas.
até aí tudo bem...
qdo eu rodo a consulta, ele naum me retorna nada até chegar a um intervalo que tenha algum registro, e qdo chega, ele passa a considerar q todos os intervalos seguintes também tenham registro, mas na verdade não tem e ele pega o gesitro que ele achou primeiro.
não sei se deu pra entender, mas se alguem puder me ajudar, eu serei muito grato!!!!

abraços!!!
Nilaum
Nilaum Membro Junior Registrado
88 Mensagens 4 Curtidas
#3 Por Nilaum
20/05/2009 - 17:28
tpcvasco disse:
Na verdade, pra mim ficou meio confuso...
Seria legal se vc desse um exemplo da estrutura da sua tabela e a consulta q vc está fazendo.


por esemplo:
a tabela eh assim: tabela (cod1(varchar[30]), cod2(integer), cnpj(varchar[20]), data(date), valor(float))

a consulta eh: select * from tabela where cod1 = :cod1 and cod2 = :cod2 and cnpj = :cnpj and data between :dataI and :dataF;

eu faço essa consulta para somar ou subtrair o valor da tabela no calculo do programa...
qdo eu faço a consulta, eu jogo no parametro um intervalo d um mes. Se houver registro nesse periodo, a função pega o valor do registro e soma ou subtrai no calculo q começa fazendo o calculo d uma determinada data (no caso suponhamos que seja 05/01/2008) ateh a data atual.
se houver um registro no dia 10/04/2008 ele deve achar o registro somente no uma vez, qdo satisfazer as minhas condições, mas qdo eu rodo o prorama, ele faz a consulta e naum acha nd ateh o intervalo onde 10/04/2008 c encontra e depois disso, ele deveria naum achar mais nd, mas ele continua achando esse mesmo registro d 10/04/2008 nos intervalos seguintes q seriam: 05/05/2008 ateh 05/06/2008...

naum sei c ficou melhor pra entender, qq coisa, eu jogo uns prints aki pra v c entende melhor...
Nilaum
Nilaum Membro Junior Registrado
88 Mensagens 4 Curtidas
#11 Por Nilaum
25/05/2009 - 09:11
fraviu disse:
Você tentou a sugestão do CANDEIA?
Alguns bancos separam a data por '-' e não por '/'.
Tente usar, em ultimo caso, BETWEEN #2000-6-1# AND #2000-6-30#.


Então, testei no SQL Manager e o formato AAAA/MM/DD e funcionou, mas no delphi 7, eu mando a data no formato DD/MM/AAAA. Eu tentei desmenbrar a data com DecodeDate() e voltar com EncodeDate() mas continua dando o mesmo problema. O registro é de 1998 e quando vou atualizando até a data corrente, ele acha o registro de 2000 na data certa, mas continua achando o mesmo registro nos meses seguintes até a data corrente.

Alguém tem alguma idéia do que eu posso fazer para resolver o problema?

Edit:
Poxa gnt, ninguém sabe como resolver????
ninguém tem nenhuma ideia doq posso fazer????

Abraços!!

Edit:
Problema resolvido!!
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal