pesquisa por datas e depois filtrar por nome
Boa Tarde,
Estou com uma duvida e gostaria da ajuda de vocês.
Tenho dois campos na minha tabela, Cliente(varchar) e data inicial e data final(date), como faço para fazer uma pesquisa por exemplo entre datas e de depois pelo nome do cliente.
Desde já agradeço!
Estou com uma duvida e gostaria da ajuda de vocês.
Tenho dois campos na minha tabela, Cliente(varchar) e data inicial e data final(date), como faço para fazer uma pesquisa por exemplo entre datas e de depois pelo nome do cliente.
Desde já agradeço!
Júnior Brito
Curtidas 0
Respostas
Julio Costa
24/10/2017
ENTRE DATAS
SELECT * FROM TABELA
WHERE data BETWEEN '2017-10-01' AND '2017-10-24'
POR CLIENTE
SELECT * FROM TABELA
WHERE cliente='julio';
SELECT * FROM TABELA
WHERE data BETWEEN '2017-10-01' AND '2017-10-24'
POR CLIENTE
SELECT * FROM TABELA
WHERE cliente='julio';
GOSTEI 0
Ismael Sousa
24/10/2017
SELECT *
FROM cliente AS c
WHERE c.datacriacao BETWEEN '01/01/2017' AND '31/01/2017'
AND c.nome LIKE ('%nome%')
FROM cliente AS c
WHERE c.datacriacao BETWEEN '01/01/2017' AND '31/01/2017'
AND c.nome LIKE ('%nome%')
GOSTEI 0
Júnior Brito
24/10/2017
Tenho esse código para realizar a pesquisa entre datas, mas preciso fazer a busca pelo nome. Nesse caso abaixo pesquisa somente pela data.
procedure TfrmModelo.btnpesquisarClick(Sender: TObject); begin with dm.CDSPROPOSTA do begin close; FetchParams; Params.ParamByName('DATAINI').AsDate:=dtpInicial.Date; Params.ParamByName('DATAFIM').AsDate:=dtpFinal.Date; Open; end; if (cbxField.Text <> EmptyStr) and (edtValor.Text <> EmptyStr) then begin ds.DataSet.Filter := 'Upper('+ Ds.DataSet.Fields[ListaField[cbxField.ItemIndex]].FieldName +') like '+QuotedStr(UpperCase(edtValor.Text)+'%'); ds.DataSet.filtered := true; if not ds.dataset.Active then ds.DataSet.Open; end; end;
GOSTEI 0
Júnior Brito
24/10/2017
O select no TSLQDataSet esta assim gostaria de procurar por data ou por nome desse jeito esta pesquisando somente a data, ignorando a pesquisa por cliente por exemplo:
select
ASSOCIADO,
CPF_CNPJ,
DEV_ANALISTA,
DIAS_ANALISTA,
DIAS_GERENTE,
DIAS_VOTE,
DT_FORM,
DT_VOTE,
DTFIN_ANALISTA,
DTFIN_GERENTE,
DTFIN_VOT,
DTIN_ANALISTA,
DTIN_GERENTE,
FERIADO,
HORA_ANALISTA,
HORAFIN_GERENTE,
HORAS_GERENTE,
HORAS_VOTE,
HR_FORM,
HR_VOTE,
HRFIN_ANALISTA,
HRFIN_VOT,
HRIN_ANALISTA,
HRIN_GERENTE,
MODALIDADE,
MOT_ANALISTA,
NIVEL_PRO_GERENTE,
NR_PROPOSTA,
OBS_FORM,
PA,
PROPOSTA_CRL,
PROPOSTA_ID,
STATUS_ANALISTA,
STATUS_VOTE,
USU_ANALISTA,
USU_FORM,
USU_GERENTE,
USU_VOTE,
PRODUTIVIDADE_ANALI,
PRODUTIVIDADE_GER,
PRODUTIVIDADE_VOT,
PRODUTIVIDADE_ANALI_DIAS,
PRODUTIVIDADE_GER_DIAS,
PRODUTIVIDADE_VOT_DIAS,
VOT_DT2,
VOT_DT3,
VOT_DT4,
VOT_DT5,
VOT_DT6,
VOT_DT7,
VOT_DT8,
VOT_DT9,
VOT_HORA2,
VOT_HORA3,
VOT_HORA4,
VOT_HORA5,
VOT_HORA6,
VOT_HORA7,
VOT_HORA8,
VOT_HORA9,
VOT_STATUS2,
VOT_STATUS3,
VOT_STATUS4,
VOT_STATUS5,
VOT_STATUS6,
VOT_STATUS7,
VOT_STATUS8,
VOT_STATUS9,
VOT_USU2,
VOT_USU3,
VOT_USU4,
VOT_USU5,
VOT_USU6,
VOT_USU7,
VOT_USU8,
VOT_USU9,
VALOR FROM PROPOSTAS WHERE DTIN_GERENTE BETWEEN :DATAINI AND :DATAFIM
select
ASSOCIADO,
CPF_CNPJ,
DEV_ANALISTA,
DIAS_ANALISTA,
DIAS_GERENTE,
DIAS_VOTE,
DT_FORM,
DT_VOTE,
DTFIN_ANALISTA,
DTFIN_GERENTE,
DTFIN_VOT,
DTIN_ANALISTA,
DTIN_GERENTE,
FERIADO,
HORA_ANALISTA,
HORAFIN_GERENTE,
HORAS_GERENTE,
HORAS_VOTE,
HR_FORM,
HR_VOTE,
HRFIN_ANALISTA,
HRFIN_VOT,
HRIN_ANALISTA,
HRIN_GERENTE,
MODALIDADE,
MOT_ANALISTA,
NIVEL_PRO_GERENTE,
NR_PROPOSTA,
OBS_FORM,
PA,
PROPOSTA_CRL,
PROPOSTA_ID,
STATUS_ANALISTA,
STATUS_VOTE,
USU_ANALISTA,
USU_FORM,
USU_GERENTE,
USU_VOTE,
PRODUTIVIDADE_ANALI,
PRODUTIVIDADE_GER,
PRODUTIVIDADE_VOT,
PRODUTIVIDADE_ANALI_DIAS,
PRODUTIVIDADE_GER_DIAS,
PRODUTIVIDADE_VOT_DIAS,
VOT_DT2,
VOT_DT3,
VOT_DT4,
VOT_DT5,
VOT_DT6,
VOT_DT7,
VOT_DT8,
VOT_DT9,
VOT_HORA2,
VOT_HORA3,
VOT_HORA4,
VOT_HORA5,
VOT_HORA6,
VOT_HORA7,
VOT_HORA8,
VOT_HORA9,
VOT_STATUS2,
VOT_STATUS3,
VOT_STATUS4,
VOT_STATUS5,
VOT_STATUS6,
VOT_STATUS7,
VOT_STATUS8,
VOT_STATUS9,
VOT_USU2,
VOT_USU3,
VOT_USU4,
VOT_USU5,
VOT_USU6,
VOT_USU7,
VOT_USU8,
VOT_USU9,
VALOR FROM PROPOSTAS WHERE DTIN_GERENTE BETWEEN :DATAINI AND :DATAFIM
GOSTEI 0
Natanael Ferreira
24/10/2017
Faça um teste alterando a cláusula Where do seu SQL para:
E o seu botão de pesquisas para:
WHERE(ASSOCIADO LIKE: NOME) OR (DTIN_GERENTE BETWEEN: DATAINI AND : DATAFIM)
E o seu botão de pesquisas para:
with dm.CDSPROPOSTA do begin close; FetchParams; Params.ParamByName('NOME').AsDate := '%' + Edit1.Text + '%'; Params.ParamByName('DATAINI').AsDate := dtpInicial.Date; Params.ParamByName('DATAFIM').AsDate := dtpFinal.Date; Open; end; if (cbxField.Text <> EmptyStr) and (edtValor.Text <> EmptyStr) then begin ds.DataSet.Filter := 'Upper(' + ds.DataSet.Fields[ListaField[cbxField.ItemIndex]].FieldName + ') like ' + QuotedStr(UpperCase(edtValor.Text) + '%'); ds.DataSet.filtered := true; if not ds.DataSet.Active then ds.DataSet.Open; end;
GOSTEI 0
Natanael Ferreira
24/10/2017
Depois que postei, vi alguns erros. Altere para:
WHERE (ASSOCIADO LIKE: NOME) OR (DTIN_GERENTE BETWEEN: DATAINI AND : DATAFIM)
with dm.CDSPROPOSTA do begin close; FetchParams; Params.ParamByName('NOME').AsString := '%' + Edit1.Text + '%'; Params.ParamByName('DATAINI').AsDate := dtpInicial.Date; Params.ParamByName('DATAFIM').AsDate := dtpFinal.Date; Open; end; if (cbxField.Text <> EmptyStr) and (edtValor.Text <> EmptyStr) then begin ds.DataSet.Filter := 'Upper(' + ds.DataSet.Fields[ListaField[cbxField.ItemIndex]].FieldName + ') like ' + QuotedStr(UpperCase(edtValor.Text) + '%'); ds.DataSet.filtered := true; if not ds.DataSet.Active then ds.DataSet.Open; end;
GOSTEI 0
Júnior Brito
24/10/2017
Valeu, me ajudou muito.
Como são dois tipos de busca como eu faço para atualizar.
O que acontece agora é quando faço a busca pela data ex: 01/10/2017 a 10/10/2017 ele traz o resultado normal, porem ao tentar realizar uma nova pesquisa ele me retorna os dados da pesquisa feita anteriormente não atualiza.
Como são dois tipos de busca como eu faço para atualizar.
O que acontece agora é quando faço a busca pela data ex: 01/10/2017 a 10/10/2017 ele traz o resultado normal, porem ao tentar realizar uma nova pesquisa ele me retorna os dados da pesquisa feita anteriormente não atualiza.
GOSTEI 0