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!!!
Responder
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#2 Por tpcvasco
20/05/2009 - 15:56
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.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
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...
FX 8120 - Bulldozer 3.1GHz, XFX R9 270x 2GB, 3 HDs 250GB/500GB/1TB, Mobo ASUS M5A78L LE, Placa de captura AVerMedia Live Gamer HD, 8GB de RAM...

Canal de Games: https://www.youtube.com/user/NerdGuide?feature=mhee

Projeto Case Dragon: https://www.hardware.com.br/comunidade/case-projeto/924748/
Nilaum
Nilaum Membro Junior Registrado
88 Mensagens 4 Curtidas
#5 Por Nilaum
21/05/2009 - 10:50
to mandando os prints pra vocês terem uma noção melhor do problema...

Esse é o registro na tabela que eu estou fazendo a consulta:
Imagem

Essa é a consulta que eu faço:
Imagem

E esse é o resultado que ela me da:
Imagem

Se alguem tiver uma ideia do pq isso ta acontecendo me fala por favor!!!

Abraços.
FX 8120 - Bulldozer 3.1GHz, XFX R9 270x 2GB, 3 HDs 250GB/500GB/1TB, Mobo ASUS M5A78L LE, Placa de captura AVerMedia Live Gamer HD, 8GB de RAM...

Canal de Games: https://www.youtube.com/user/NerdGuide?feature=mhee

Projeto Case Dragon: https://www.hardware.com.br/comunidade/case-projeto/924748/
Nilaum
Nilaum Membro Junior Registrado
88 Mensagens 4 Curtidas
#7 Por Nilaum
22/05/2009 - 16:51
tpcvasco disse:
Os prints não apareceram


aki no meu pc aparece!!!!
será q naum eh sua internet??

kem puder me dar uma maunzinha u vo agradecer!!!

abraçoss!!
FX 8120 - Bulldozer 3.1GHz, XFX R9 270x 2GB, 3 HDs 250GB/500GB/1TB, Mobo ASUS M5A78L LE, Placa de captura AVerMedia Live Gamer HD, 8GB de RAM...

Canal de Games: https://www.youtube.com/user/NerdGuide?feature=mhee

Projeto Case Dragon: https://www.hardware.com.br/comunidade/case-projeto/924748/
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#8 Por tpcvasco
22/05/2009 - 17:18
Nilaum disse:
aki no meu pc aparece!!!!
será q naum eh sua internet??


Ah, tá, deve ser o proxy aki do trampo q bloqueia, em casa eu vejo com calma e vejo se ajudo.

----------- EDIT -----------

Realmente estranho, tente seguir a dica do candeia sobre o formato da data e veja oq acontece.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Nilaum
Nilaum Membro Junior Registrado
88 Mensagens 4 Curtidas
#9 Por Nilaum
23/05/2009 - 18:46
Ninguém sabe o que pode estar errado???

Uma mãozinha.... por favor!!!!
FX 8120 - Bulldozer 3.1GHz, XFX R9 270x 2GB, 3 HDs 250GB/500GB/1TB, Mobo ASUS M5A78L LE, Placa de captura AVerMedia Live Gamer HD, 8GB de RAM...

Canal de Games: https://www.youtube.com/user/NerdGuide?feature=mhee

Projeto Case Dragon: https://www.hardware.com.br/comunidade/case-projeto/924748/
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!!
FX 8120 - Bulldozer 3.1GHz, XFX R9 270x 2GB, 3 HDs 250GB/500GB/1TB, Mobo ASUS M5A78L LE, Placa de captura AVerMedia Live Gamer HD, 8GB de RAM...

Canal de Games: https://www.youtube.com/user/NerdGuide?feature=mhee

Projeto Case Dragon: https://www.hardware.com.br/comunidade/case-projeto/924748/
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal