Saul Lima escreveu:
Tenho um banco de dados para registro de clientes e pagamento de
mensalidades. Nele, eu criei duas consultas, na primeira, chamada de
qryAdimplentes, é feita uma busca na tabela de pagamentos onde as colunas
Ano e Mês tem critério = ?, para que seja perguntando o ano e mês de
pagamento a ser consultado quando a consulta é acessada.
Na segunda consulta, que se chama qryInadimplentes, são exibidos os nomes,
sobrenomes, endereço, telefone, celular de todos os que estão inadimplentes
em determinado mês e ano. Esta consulta tem um cláusula NOT IN, orientando
para que a mesma exclua os registros computados na tabela de pagamentos. O
código sql dela é o seguinte:
SELECT DISTINCT "Clientes"."IDCliente", "Clientes"."Nome",
"Clientes"."Sobrenome", "Clientes"."Endereço", "Clientes"."Bairro",
"Clientes"."EndereçoEmail", "Clientes"."NúmeroTelefone",
"Clientes"."NúmeroCel", "qryAdimplentes"."Mes", "qryAdimplentes"."Ano" FROM
"Clientes", "qryAdimplentes" WHERE "Clientes"."IDCliente" NOT IN ( SELECT
DISTINCT "qryAdimplentes"."IDCliente" FROM "qryAdimplentes")
Acontece que quando tento criar um relatório a partir da consulta
qryInadimplentes a janela popup que se abre perguntando pelo mês e ano é
redundante. Aparecem 2 vezes o campo Ano e 2 vezes o campo mês, sendo que o
relatório só é gerado corretamente se preenchidos os quatro campos da
janela.... Não entendi o porque disso, sendo que as consultas funcionam
normalmente, inclusive a qryInadimplentes que só pergunta por um campo Mês e
um campo Ano para exibir os resultados...
O que pode estar causando esta redundância?
Talvez seja porque você referencia duas vezes a consulta
"qryAdimplentes", na cláusula FROM do SELECT externo e no sub-select
da cláusula NOT IN.
Tente usar um LEFT OUTER JOIN:
SELECT DISTINCT "Clientes"."IDCliente", "Clientes"."Nome",
"Clientes"."Sobrenome", "Clientes"."Endereço", "Clientes"."Bairro",
"Clientes"."EndereçoEmail", "Clientes"."NúmeroTelefone",
"Clientes"."NúmeroCel", "qryAdimplentes"."Mes", "qryAdimplentes"."Ano"
FROM {oj "Clientes" LEFT OUTER JOIN "qryAdimplentes" ON
"Clientes"."IDCliente" = "qryAdimplentes"."IDCliente"}
WHERE "qryAdimplentes"."IDCliente" IS NULL
Osvaldo
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]