Consulta aleatória de 3 campos, como?

Delphi

17/04/2006

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:

[quote]
SELECT usuario, data, status FROM ocorrencia ORDER BY RAND() LIMIT 3[/code]

Mas ta dando erro de sintaxe...

Valeu amigos.........e aguardo respostas


Igorvalle

Igorvalle

Curtidas 0

Respostas

Mmoreira

Mmoreira

17/04/2006

Nao sei se é isso q vc ta querendo fazer:

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

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]

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
POSTAR