CONSULTA ENTRE DATAS COM EXCLUSAO

GNCNET 22/10/2010 18:28:26
#355700
Pessoal
Tudo bem!

Preciso montar a seguinte consulta:
Listar os clientes que marcaram o último atendimento há mais de seis meses e obviamente nao marcaram outro atendimento neste período.
Já fiz uma consulta com a relação daqueles que marcaram atendimento com determinado consultor, mas não consigo realizar com a condição que citei anteriormente.
Por exemplo: A consulta a seguir lista todos os atendimentos do consultor no periodo entre a data inicial e final, e que foram (statusproc) [ô]atendido[ô].

Set rs = bb.OpenRecordset([Ô]SELECT * FROM tbl_orcamentos WHERE data BETWEEN #[Ô] & Format(data_ini, [Ô]mm/dd/yyyy[Ô]) & [Ô]# And #[Ô] & Format(data_fim, [Ô]mm/dd/yyyy[Ô]) & [Ô]# AND consultor=[ô][Ô] & cbo_prof.Text & [Ô][ô] and statusproc = [ô]atendido[ô] order by data[Ô], dbOpenDynaset)

Alguém pode ajudar?
Grato,
Gardel

TECLA 23/10/2010 16:24:41
#355751
O que você precisa é agregar a função DATEDIFF na consulta.

Sintaxe:
DateDiff(Intervalo, DateAntiga, DataRecente)

No seu caso, seria algo mais ou menos assim:
DateDiff([Ô]m[Ô], seu_campo_data, Date) > 6 ...
GNCNET 24/10/2010 08:14:29
#355768
Tecla,
Obrigado, estamos no caminho.
Entretanto, o objetivo é buscar os clientes que não marcaram atendimento nestes 6 ultimos meses e não apenas há mais de 6 meses. Nesta função q vcme passou, eles podem ter marcado outro atendimento neste período também.
Grato
TECLA 24/10/2010 12:11:58
#355773
é uma questão de lógica, antes mesmo de executar uma query no banco.
Seria interessante você postar uma base (exemplo) alimentada com dados fictícios pra ficar disponível no tópico pra realização dos testes.
No mais, defina qual é a consulta que precisa (se é de 0 a 6 meses OU mais de 6 meses).
MARCELO.TREZE 25/10/2010 07:31:01
#355795
Resposta escolhida
é o tecla está certo,mas eu tentaria assim, usando o DateAdd

Set rs = bb.OpenRecordset([Ô]SELECT * FROM tbl_orcamentos WHERE data  < #[Ô] & Format(DateAdd([Ô]m[Ô], -6, Date), [Ô]mm/dd/yyyy[Ô]) & [Ô]#  AND consultor=[ô][Ô] & cbo_prof.Text & [Ô][ô] and statusproc = [ô]atendido[ô] order by data[Ô], dbOpenDynaset)





Tópico encerrado , respostas não são mais permitidas