RELATORIO FACIL
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?
vc quer um select ou um codigo fonte do relatorio
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.
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.
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.
Citação:Amigo, até que começou a dar certo, agora esta dando operador ausente, veja como estou fazeno o processo ::
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.
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?
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[Ô]) & [Ô]#[Ô]
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[Ô]) & [Ô]#[Ô]
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[Ô]) & [Ô]#)[Ô]
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