Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jow Xavier

[Resolvido] listar registros atrávez do sql

Recommended Posts

Galera criei este sql:

sql = "Select * from compromissos WHERE box LIKE '%" & palavra & "%' OR nome = '" & palavra & "' AND data = '" &strData_busca& "' AND data < '" & strData & "' ORDER BY nome ASC "
set tab = cnn.execute(sql)
... Pois preciso listar apenas qd o meu campo box tenha uma parte do q foi inserido na variável palavra ou o campo nome contenha a mesma coisa e o campo data contenha o q foi digitado na variável strData_busca q está convertida para o formato adequado e q tudo isso seja menos q a variável strData, tbm já convertida ... Alguém pode ajudar com esse SQL ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

nome=João foi o q digitei, data = '2008-07-26' foi o q digitei

Select * from compromissos WHERE box LIKE '%João%' OR nome = 'João' AND data = '2008-07-26' AND data < '2008-07-28' ORDER BY nome ASC

estou tentando montar o sql de acordo com dois campos onde foram digitados os valores ... e assim efetuar a pesquisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa

 

Acho que você está querendo fazer um filtro nao seria isso nao

 

tipo

 

Se a data estiver preenchida fazer o select apenas com a data

se o nome preenchido e data tb entao faz o select com os dois parametros.

 

Foi o que entendi.

 

Valew

 

Eu faria com Between

 

assim

 

Select * from compromissos WHERE (box LIKE '%João%' OR nome = 'João')  AND (data  BETWEEN '2008-07-26' AND '2008-07-28') ORDER BY nome ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso ae ... e se apenas o nome estiver preenchido faz o select apenas com o nome ... só ñ estou conseguindo fazer com os dois juntos !!! como faço isso ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o meu Sql q eu uso é este:

sql = "Select * from compromissos WHERE (box LIKE '%" & palavra & "%' OR nome = '" & palavra & "' OR data = '" &strData_busca& "' AND data < '" & strData & "') OR (box LIKE '%" & palavra & "%' OR nome = '" & palavra & "' AND data BETWEEN '" &strData_busca& "' AND data < '" & strData & "') ORDER BY nome ASC "
set tab = cnn.execute(sql)
fiz assim e ñ funcionou ... Não consigo filtrar com os dois juntos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o campo nao for do tipo data/datetime nao vai funcionar ok.

 

Testa o que te passei ok.

 

 

Fiz uns testes aqui e funcionou normal

 

Teste

 

tabela 

João	2008-07-26 00:00:00.000
João	2008-07-25 00:00:00.000
João	2008-07-27 00:00:00.000
Joao	2008-07-27 00:00:00.000
Joao	2008-07-28 00:00:00.000

 

Select friltrando todo mundo que tenha Joao ou João e a data esteja dentro de 26/07/2008 a 28/07/2008 inclusive

 

Select * from compromissos
WHERE (box LIKE '%Joao%' OR box = 'João')  
AND (data  BETWEEN '2008-07-26' AND '2008-07-28') 
ORDER BY box ASC

 

retorno

 

Joao	2008-07-27 00:00:00.000
Joao	2008-07-28 00:00:00.000
João	2008-07-26 00:00:00.000
João	2008-07-27 00:00:00.000

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o campo nao for do tipo data/datetime nao vai funcionar ok.

 

Testa o que te passei ok.

o campo é do tipo date

 

Testei o q me passou e ñ fuincionou !!!

 

Mas o campo é do tipo Date isso funciona normal ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ñ lista, a minha sql é está, como devo montar

sql = "Select * from compromissos WHERE box LIKE '%" & palavra & "%' OR nome = '" & palavra & "' OR data = '" &strData_busca& "' AND data < '" & strData & "' OR box LIKE '%" & palavra & "%' OR nome = '" & palavra & "' AND data = '" &strData_busca& "' AND data < '" & strData & "' ORDER BY nome ASC "
set tab = cnn.execute(sql)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim ok.

 

Select * from compromissos 
WHERE 
(box LIKE '%" & palavra & "%' OR nome = '" & palavra & "')
AND 
(data BETWEEN '" & strDataInicial & "' AND '" & strDataFinal & "')
ORDER BY nome ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara funcionou qd eu pesquiso pelos dois campos ou seja qd pesquiso por usuário e por data, mas qd eu pesquiso por um dos dois ñ funciona, preciso de três opções de consulta, por usuário, por data, ou pelos dois isso com os mesmos campos ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi

 

tenta aí

 

 

if request("nome") <> "" then
	filtroNome = " (box LIKE '%" & request("nome") & "%' OR nome = '" & request("nome") & "') "
	operador = " AND "
else
	filtroNome = ""
	operador = ""
end if

if request("dataInicial") <> "" and request("dataFinal") <> "" then
	filtroData = operador & " (data BETWEEN '" & request("dataInicial") & "' AND '" & request("dataFinal") & "') "
end if

sql = "Select * from compromissos WHERE "&filtroNome&filtroData&" ORDER BY nome ASC"

 

Só lembrando que desse jeito aí você vai ter quer passar mesmo um dos dois campos ou a data ou o nome senao vai dar m*****, por causa do where. Espero que você tenha entendido a logica aí ok.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara entendi a sua lógica, só q ñ consegui fazer funcionar huahuahuhuah ñ listou nada por nenhum dos campos ... Fiz assim

if request("palavra") <> "" OR request("busca") <> "" then

sql = "Select * from compromissos WHERE box LIKE '%" & palavra & "%' OR nome = '" & palavra & "' AND data < '" & strData & "' ORDER BY nome ASC "

set tab = cnn.execute(sql)

else

end if

 

if request("palavra") <> "" AND request("busca") <> "" then

sql = "Select * from compromissos WHERE (box LIKE '%" & palavra & "%' OR nome = '" & palavra & "')AND(data BETWEEN '" & strData_busca & "' AND '" & strData_busca & "')ORDER BY nome ASC"

set tab = cnn.execute(sql)

else

end if

... ai ñ está listando apenas qd mando por data ... lista por usuário e por usuário e data

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara tenta isolar assim ok

 

if request("palavra") <> "" OR request("busca") <> "" then
sql = "Select * from compromissos WHERE (box LIKE '%" & palavra & "%' OR nome = '" & palavra & "') AND (data < '" & strData & "') ORDER BY nome ASC "
set tab = cnn.execute(sql)
else
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara ñ tá funcionando ... tipo se eu escrever um nome e uma data ele lista certo ... mas lista por causa da data ñ está considerando o nome e a data ... só considera a data ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá

 

 

você quer listar as pessoas cujo nome ou o box tenha João e a data seja < data informada ok?

 

Se for isso está correto o Sql

 

Tem que ver no registro se você realmente tem um Joao com a data < que data informada, pq se for igual ele nao vai entrar ok.

 

Lembrando que você só deu um Like no box e nao no nome ok.

 

Entao supondo que você tenha

 

 

BOX			 Nome		   data
João Marco		 João José		2008-07-28
Maria João		 Marcos		  2008-07-20
José			 João			  2008-07-25

sql = "Select * from compromissos WHERE (box LIKE '%" & palavra & "%' OR nome = '" & palavra & "') AND (data < '" & strData & "') ORDER BY nome ASC "

se você usar o select acima com a data = 2008-07-28 que te falei ele vai retornar


BOX			 Nome		   data
Maria João		 Marcos		  2008-07-20
José			 João			  2008-07-25

agora se você usar

 

sql = "Select * from compromissos WHERE (box LIKE '%" & palavra & "%' OR nome = '" & palavra & "') AND (data <= '" & strData & "') ORDER BY nome ASC "

BOX			 Nome		   data
João Marco		 João José		2008-07-28
Maria João		 Marcos		  2008-07-20
José			 João			  2008-07-25

Espero que você entenda ok

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais ou menos a data deve ser < q a data do relógio do windows q eu converti para comparar com a data do banco ... e já verifiquei os dados e realmente existem ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

só ñ está funcionando isso:

if busca <> "" then
sql = "Select * from compromissos WHERE data = '" & strData_busca & "' AND data < '" & strData & "' ORDER BY nome ASC "
set tab = cnn.execute(sql)
else
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.