Consulta aleatória de 3 campos, como?
Boa noite amigos, gostaria de saber como fica um consulta em SQL, tipo assim:
Tenho 1 campo usuario (textbox), 1 campo data (textbox) e 1 campo (textbox) de status em um form. Como fica essa consulta em SQL, de forma que se o usuário preencher 1 campo, ou 2 campos ou ainda os três, ou somente 2 campos e etc, que seja feita a consulta com as combinações possíveis desses 3 campos, tipo uma consulte aleatória:
1º Campo AND 2º Campo AND 3º Campo
1º Campo AND 2º Campo OR 3º Campo
1º Campo OR 2º Campo AND 3º Campo
1º Campo OR 2º Campo OR 3º Campo
Etc...
Tipo assim, com todas as combinações possíveis desses três campos.... Alguém poderia postar um exemplo para esse caso de uma expressão SQL?
Tentei algo como:
SELECT usuario, data, status FROM ocorrencia ORDER BY RAND() LIMIT 3[/code]
Mas ta dando erro de sintaxe...
Valeu amigos.........e aguardo respostas
Tenho 1 campo usuario (textbox), 1 campo data (textbox) e 1 campo (textbox) de status em um form. Como fica essa consulta em SQL, de forma que se o usuário preencher 1 campo, ou 2 campos ou ainda os três, ou somente 2 campos e etc, que seja feita a consulta com as combinações possíveis desses 3 campos, tipo uma consulte aleatória:
1º Campo AND 2º Campo AND 3º Campo
1º Campo AND 2º Campo OR 3º Campo
1º Campo OR 2º Campo AND 3º Campo
1º Campo OR 2º Campo OR 3º Campo
Etc...
Tipo assim, com todas as combinações possíveis desses três campos.... Alguém poderia postar um exemplo para esse caso de uma expressão SQL?
Tentei algo como:
[quote]
Mas ta dando erro de sintaxe...
Valeu amigos.........e aguardo respostas
Igorvalle
Curtidas 0
Respostas
Mmoreira
17/04/2006
Nao sei se é isso q vc ta querendo fazer:
Acho que da pra melhorar um pouco isso ai ... v c te ajuda
with ClientDataSet_Usuarios do begin
Close;
CommandText := ´select idusuario, usuario, data, status from usuario where ´;
if Edit1.Text <> ´´ then begin
CommandText := CommandText + ´(usuario = :usuario) and ´;
Params.ParamByName( ´usuario´ ).AsString := Edit1.Text;
end;
if Edit2.Text <> ´´ then begin
CommandText := CommandText + ´(data = :data) and ´;
Params.ParamByName( ´data´ ).AsDate := StrToDate( Edit2.Text );
end;
if Edit3.Text <> ´´ then begin
CommandText := CommandText + ´(status = :status) and ´;
Params.ParamByName( ´status´ ).AsString := Edit3.Text;
end;
CommandText := CommandText + ´(idusuario <> 0)´;
end;
Acho que da pra melhorar um pouco isso ai ... v c te ajuda
GOSTEI 0
Paullsoftware
17/04/2006
Tenta assim:
[b:c569c56d92]Sql = ´Select Nome, Data, Status From Usuario Where Nome Starting With :N or Data Starting With :D Or Status Starting With :S Order By Nome´;[/b:c569c56d92]
é mais ou menos isso :wink:
[b:c569c56d92]Sql = ´Select Nome, Data, Status From Usuario Where Nome Starting With :N or Data Starting With :D Or Status Starting With :S Order By Nome´;[/b:c569c56d92]
With Query1 do begin ParamByName(´N´).AsString := Edit1.Text; ParamByName(´D´).AsString := Edit2.Text; ParamByName(´S´).AsString := Edit3.Text; Open; end;
é mais ou menos isso :wink:
GOSTEI 0