(RESOLVIDO)Campos Ambiguos no SQL do PDFReport

Boa noite pessoal.

Tenho um PDFReport que esta dando o seguinte erro?

/--------------------------------------------------------------------------------------------/
Atenção
Erro ao acessar o banco de dados
Column ‘escritorio’ in where clause is ambiguous
SELECT calendario.id as calendario_id, calendario.assunto as calendario_assunto, calendario.idcli as calendario_idcli, calendario.local as calendario_local, calendario.vara as calendario_vara, calendario.dataini as calendario_dataini, calendario.horaini as calendario_horaini, processos.numproc as processos_numproc, processos.adverso as processos_adverso, processos.escritorio as processos_escritorio from calendario INNER JOIN processos ON calendario.id = processos.idproc where escritorio = ‘Xerém’
/-------------------------------------------------------------------------------------------------/

Informa que tem 2 campos iguais ns tabelas calendario e processos e o banco não sabe em quem prourar os dados (acho q é isso rs)

Meu SQL esta desta forma:
/-------------------------------------------------------------------------------------------------/
SELECT
calendario.assunto,
calendario.idcli,
calendario.local,
calendario.vara,
calendario.dataini,
calendario.horaini,
processos.numproc,
processos.adverso,
processos.escritorio
FROM
calendario JOIN processos ON calendario.idcli = processos.idcli
/----------------------------------------------------------------------------------------------/
Fiz a aplicação com as duas tabelas.
Como faço para resolver este problema, já que preciso dos campos nas duas tabelas?

Precisando da ajuda de vcs e obrigada

O erro ocorre porquê vc tem esse campo escritório em mais de uma tabela diferente no seu select. Vc tem que colocar where TABELA.escritorio = ‘Xerém’

1 Curtida

Use aliases curtos:
calendario AS cl
processos AS pc,

Etc, ai igual ao Thyago falou adicione os aliases tabelas antes e os campos.

1 Curtida

Oi Thyago.

O problema que tenho vários escritórios.
Ex:

Tenho Caxias, Paris e Barrra da Tijuca q podem ver seus dados, menos Xerem
E tenho Xerem, que não pode ver nenhum dos outros, só o dele.
Tenho um código que resolve isso.

Meu SQL e este:
SELECT
calendario.assunto,
calendario.idcli,
calendario.local,
calendario.vara,
calendario.dataini,
calendario.horaini,
calendario.escritorio,
processos.numproc,
processos.adverso,
processos.escritorio
FROM
calendario JOIN processos ON calendario.idcli = processos.idcli
WHERE
calendario.escritorio = ‘Xerém’

tem duas tabelas.
Neste caso, como resolver?
Já tentei colocar processos.escritorio = ‘Xerém’, mas dá erro

Obrigada pela ajuda

Tá com erro pq vc pôs where calendario.escritorio = ‘Xerém’ AND escritorio = 'Xerém’

Coloquei apenas o WHERE
calendario.escritorio = ‘Xerém’,

Vou postar um video

Não é o que está mostrando teu erro. Em algum local vc está add o escritorio = 'Xerém’

Veja Thyago, meu sql não tem o And

No seu vídeo dá pra ver que no onScriptInit tem vários sc_select_where(add) onde você inclusive está colocando Where escritorio = ‘Xerém’ por exemplo. O erro está nessas macros!

Te indico dar uma estudada na macro pra ver melhor como é o funcionamento delas.

Este código uso em outros relatório que não deram problemas.
Apenas nesse que tenho 2 tabelas.

No fim do mes passado, este código era diferente, ma não sei oq deeu na app depois q eu publiquei não funcinava mais, então o suporte do SC teve que me ajudar e fizeram este código.

Não deu nada na app. Vc está fazendo select em duas tabelas que tem o mesmo campo ESCRITÓRIO. E no onScriptInit está usando a macro que lhe falei onde dá pra ver no próprio vídeo que você mandou que vc não está informando de qual tabela é o campo escritório que vai usar no where. Veja as imagens abaixo

1 Curtida

Sim thyago.
Como falei acima, este código foi feito para o acesso dos escritórios e em outras apps e relatórios , mas como vc falou estou trabalhando com duas tabelas e quem fez este código foi o pessoal do suporte.
Tenho q ver oq fazer, pq não tenho nem noção de como resolver. Soou bem bássica no SC

Obrigada

Mas eu estou te dizendo o que você tem que fazer!!! Colocar o nome da tabela antes do nome do campo. Simples

1 Curtida

Isso no meu código, correto?
No SQL já está

Sim, onde te mostrei no print

Fiz Thyago,
Funcionou, mas o relatório não tras dados que cadastrei hoje.
Estes dados vem do agendamento do calendário.
No Builder vem normal.

Mas obrigada viu
Desulpe a falta de conhecimento, aprendendo todos os dias um pouco.

Não deve estar trazendo devido a alguma clausula no seu where. Tem que verificar ai, colocar no modo debug e ver o que retorna pra vc no builder

1 Curtida

vou verificar.

Retorno.

Obrigada