RELATORIO FACIL

XXXANGELSXXX 23/03/2010 10:57:13
#337696
Bom dia senhores, estou com uma duvida em um relatorio aqui, vejam bem eu tenho um sistema de ocorrencias ( registro de ligacoes) so que acontece o seguinte.. tenho 2 tabelas, uma cadastro de clientes, onde contem todos os dados do cliente, como codigo, endereco.. etc, e outra que chama MOVOCORRENCIAS que é onde é registrado o atendimento de cada cliente, gostaria de saber o seguinte, como faço um relatorio pode ser no crystal, somente dos clientes que nao efetuaram ligacoes para mim num periodo, ou seja, nao tem registro localizado na tabela de MOVLIGACOES.. entenderam?
ROBSON220BASS 23/03/2010 11:27:44
#337699
vc quer um select ou um codigo fonte do relatorio
MARCIO.TEIXEIRA 23/03/2010 11:37:42
#337706
Resposta escolhida
Vê se isso ajuda:

select a.codcli
from cad_cliente a
where a.codcli not in (select b.codcli
from movligacoes b
where a.codcli = b.codcli
and b.dtligacao between [ô]01/01/2010[ô] and [ô]31/01/2010[ô])

ou

select a.codcli
from cad_cliente a
where not exists (select b.codcli
from movligacoes b
where a.codcli = b.codcli
and b.dtligacao between [ô]01/01/2010[ô] and [ô]31/01/2010[ô])

aí precisa modificar os nomes dos campos de acordo com suas tabelas.
FERRAZ 23/03/2010 19:23:44
#337757
Vc poderia usar um controle no vb o DTPicker e um parametro no crystal, para filtrar determinados periodos e dai vc verificaria quem tem ocorrencia ou nao, o que acha.
XXXANGELSXXX 25/03/2010 12:38:40
#337866
Citação:

:
Vê se isso ajuda:

select a.codcli
from cad_cliente a
where a.codcli not in (select b.codcli
from movligacoes b
where a.codcli = b.codcli
and b.dtligacao between [ô]01/01/2010[ô] and [ô]31/01/2010[ô])

ou

select a.codcli
from cad_cliente a
where not exists (select b.codcli
from movligacoes b
where a.codcli = b.codcli
and b.dtligacao between [ô]01/01/2010[ô] and [ô]31/01/2010[ô])

aí precisa modificar os nomes dos campos de acordo com suas tabelas.

Amigo, até que começou a dar certo, agora esta dando operador ausente, veja como estou fazeno o processo :

caminho = ReadINI([Ô]Geral[Ô], [Ô]Caminho[Ô], App.Path & [Ô]\Config.ini[Ô])
Set db = DBEngine(0).OpenDatabase(caminho)
StrSql = [Ô]select a.CliCodigo as a from CadClientes a where a.CliCodigo not in (select b.MovCliCodigo from movligacoes b Where a.codcli = b.CliCodigo and b.DataInicio between #[Ô] & Format(txtIni.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and #[Ô] & Format(txtFim.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]
Set rs = db.OpenRecordset(StrSql, dbOpenSnapshot)

O que esta de errado nisso?
MARCIO.TEIXEIRA 25/03/2010 13:46:14
#337870
Eu fiz uma pequena mudança, tenta aí porque fiquei com preguiça de criar umas tabelas parecidas

StrSql = [Ô]select a.CliCodigo from CadClientes As a where a.CliCodigo not in (select b.MovCliCodigo from movligacoes As b Where a.codcli = b.CliCodigo and b.DataInicio between #[Ô] & Format(txtIni.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and #[Ô] & Format(txtFim.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]
MARCIO.TEIXEIRA 25/03/2010 14:02:14
#337871
faltou fechar )

StrSql = [Ô]select a.CliCodigo from CadClientes As a where a.CliCodigo not in (select b.MovCliCodigo from movligacoes As b Where a.codcli = b.CliCodigo and b.DataInicio between #[Ô] & Format(txtIni.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]# and #[Ô] & Format(txtFim.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#)[Ô]
Tópico encerrado , respostas não são mais permitidas