Problema com marco sc_select_where(add)

Criei uma consulta com o seguinte comando sql:

select
imoveis.tipo,
imoveis.bairro,
imoveis.referencia,
imoveis.descricao,
imoveis.valorvenda,
imoveis.garagem,
imoveis.quartos,
(select fotos.nome_arquivo from fotos where imoveis.id = fotos.id_imovel and fotos.destaque=1 ) as nome_arquivo
from imoveis

e no evento onscripinit eu coloquei o seguinte comando:

sc_select_where(add) = “where imoveis.ativo = ‘s’ and imoveis.destaque = 1”;

para filtrar os registros, e esta acusando o seguinte erro:

ERRO Erro ao acessar o banco de dados
Unknown column ‘imoveis.ativo’ in ‘where clause’
select count(*) from (select imoveis.tipo, imoveis.bairro, imoveis.referencia, imoveis.descricao, imoveis.valorvenda, imoveis.garagem, imoveis.quartos, (select fotos.nome_arquivo from fotos where imoveis.id = fotos.id_imovel and fotos.destaque=1 ) as nome_arquivo from imoveis ) nm_sel_esp where imoveis.ativo = ‘s’ and imoveis.destaque = 1

Pelo que entendi o scriptcase esta colocando a clausula where fora do comando principal.

Eu já usei esta macro em outros casos, porem este sql tem um select dentro do select e acho que isso esta ocasionando o erro, porem preciso deste select assim como esta.

Alguem já passou por isso ?
Ou tem como eu alterar o where de alguma outra forma ?

Deve ser por causa do subselect:
(select fotos.nome_arquivo from fotos where imoveis.id = fotos.id_imovel and fotos.destaque=1 ) as nome_arquivo

o parser do scriptcase as vezes faz estas coisas mesmo, você poderia tentar usar uma view no select principal e

create view vw_nome_que_vc_quiser as select
imoveis.tipo,
imoveis.bairro,
imoveis.referencia,
imoveis.descricao,
imoveis.valorvenda,
imoveis.garagem,
imoveis.quartos,
(select fotos.nome_arquivo from fotos where imoveis.id = fotos.id_imovel and fotos.destaque=1 ) as nome_arquivo,
imoveis.ativo,
imoveis.destaque
from imoveis

e depois o uso do comando sc_select_where(add) = “where imoveis.ativo = ‘s’ and imoveis.destaque = 1”;

lembrando que o nome dos campos no scriptcase pode não permanecer o mesmo depois da criação a view ai você ajusta no comando sc_select_where

Ou então substituir o subselect por uma instrução JOIN (IINER, LEFT ou RIGHT) que é até mais eficiente.

Teste aí e retorne pra gente saber.

Crie uma View para esse select e faça a consulta em cima da view.
No select da view devem haver as colunas utilizadas na cláusula where.

Se tiver filtro vai haver conflito com seu comando, observe como esta macro é utilizada no webhlep do SC.