[RESOLVIDO] Duvida com Variavel Inner Join

O problema é o seguinte criei uma Grid Consulta com o seguinte Inner Join:

SELECT p.id_pessoa, p.id_entidade, p.nome, p.cpf, p.rg, p.apelido, p.nascimento, p.aniversario, p.observacao, p.cargo, p.cadastrado_em, p.cadastrado_por, p.alterado_em, p.alterado_por, p.ativo, c.id_tipo_contato, c.conteudo, d.id_entidade, d.nome FROM "public".pessoa p INNER JOIN "public".entidade d on (d.id_entidade = p.id_entidade) INNER JOIN "public".contatopessoa c on (c.id_pessoa = p.id_pessoa) WHERE d.nome LIKE 'P%'

criou os campos p.apelido, p.nome, p.cpf etc na hora de tratar as variáveis com seus respectivos campos dá erro Undefined Variable.

ex: {p.apelido} {p.nome}

ele não identifica, alguém ai sabe como tratar essas variáveis ?

Olá Leandro,

é assim mesmo que se usa.
{p.nome} etc.

o campo “nome” está referenciado como “d” e como “p”.
Quais dos dois está certo?
Dá uma olhada nisso.

Abs

Ricardo

ele está me retornando este erro quando vou imprimir a variável para testar a mesma.

ERRO
Undefined property: P_ini::$p_nome

Olá Leandro,

Você tem realmente o campo nome nas duas tabelas? pessoa e entidade?

Abs

tente colocar alias nas colunas.

Tenho apenas o p.nome em Pessoa, só que esse erro ocorre em qualquer campo que eu se refira.

exemplo tenho o campo data manual. quando utilizo {data} ele não identifica

Leandro,

Você já executou este select diretamente no BD ?

Att,

Jocimar

Sim, executa corretamente sem erro algum ;), não implemento Selects antes de testa- las diretamente no BD

Leandro,

Desculpa se estou insistindo…
Mas no seu select tem um “d.nome”

Abs

Ricardo

Leandro,

Não cheguei a testar por aqui, mas até o momento não havia utilizado “public” entre aspas. Utilizo o PostgreSQL, e quando utilizo schema não informo entre aspas. Você chegou a fazer este select sem as aspas em public ?

Att,

Jocimar

Fiz aqui agora e deu no mesmo :frowning: , tá tenso isso, pior de tudo que nem sei o que significa esse erro pensei que fosse pelo uso do apelido no Inner Join.

É se refere ao nome da Entidade será que há algum conflito mesmo com apelidos diferente ?

Coloquei o Alias deu no mesmo também :frowning:

Muito obrigado pessoa, vocês são muito prestativos/Ajudantes com Novatos inexperiente com a ferramenta. Continuem sempre assim !!

Leandro,

LEFT OUTER JOIN web_gerencia.tbl_cgcli cgcli
USING ( loccod, clicod )

SELECT
p.id_pessoa, p.id_entidade, p.nome, p.cpf, p.rg, p.apelido, p.nascimento, p.aniversario, p.observacao, p.cargo, p.cadastrado_em, p.cadastrado_por, p.alterado_em, p.alterado_por, p.ativo, c.id_tipo_contato, c.conteudo, d.id_entidade, d.nome
FROM
public.pessoa p
LEFT OUTER JOIN public.entidade d USING (id_entidade)
LEFT OUTER JOIN public.contatopessoa c USING (id_pessoa)
WHERE p.nome LIKE ‘P%’

Não sei o propósito de seu select, mas passei da forma de solução que utilizei no PostgreSQL, e percebi que seu where estava apontando para tabela que não era a public.pessoa, estava apontando a condição para tabela de “junção”, acredito ser este o problema, tenta mudar para tabela do FROM public.pessoa p

Att,

Jocimar

tente criar uma app nova, do zero com o select com o o alias para cada coluna.

Descobrir qual foi o erro meu pessoal,

OnApplicationInit

Este evento ocorre antes da aplicação executar o SQL. Só é executada ao carregar a aplicação.

Estava a utilizar este evento por isso a variável era indefinida(erro de principiante mesmo), utilizei o Evento OnHeader e resultou ! Muito Obrigado a Todos pela paciência e quando precisar estarei a disposição.

Grato desde já.

Valeu pela honestidade.

Abs

Ricardo