Fazer query por Semanas [Resolvido]

SELECT
idcelula,
setor_idsetor,
fk_login,
nome,
datahora,
cep,
logradouro,
numero,
bairro,
cidade,
estado,
dataMultiplicacao,
diaExtraCelula,
cuidado,
supervisores,
lideres,
anfitriaos,
auxiliares,
dataTimeExtra,
FocoCuidado,
MDAHomens,
MDAMulher,
TAGC,
obs,
situacao
FROM
celula
where setor_idsetor = ‘[var_setor]’

e qual o select do campo virtual Data?

$sql="
SELECT semana
FROM frequencia
WHERE
membros_celula_setor_idsetor = ‘[var_setor]’ AND membros_celula_idcelula = ‘{idcelula}’ AND ‘{data}’ = ‘[var_semana]’
";

sc_lookup(chk_semana, $sql);

{Data}={chk_semana[0][0]};

me explica isso aqui:

… AND ‘{data}’ = ‘[var_semana]’ // depois o and deveria vir uma coluna da tabela, o que é {data} que coincide com o nome do seu campo virtual???

AND ‘{data}’ = ‘[var_semana]’ // depois o and deveria vir uma coluna da tabela, o que é {data} que coincide com o nome do seu campo virtual???

{data} é o campo virtual

Não vejo logica coloca um campo virtual como uma coluna em uma condição where.

Você faz um select com uma condição sql cujo o resultado vc atribui a um campo virtual.

aqui -AND ‘{data}’ = ‘[var_semana]’ o sc vai substituir o valor de {data} e o valor de [var_semana].
Se ambos forem 32, ficaria AND ‘32’ = '32 <-- Não vejo sentido.

Ao debugar pode analisar a query montada pelo SC e verá.

{data} é uma variável .

Ok! Qual a melhor solução para esse caso: Filtrar um campo virtual, para se mostrado na consulta?

você tem que fazer um inner join no sql principal usando essas duas querys

ai o sc_select_where(add) vai funcionar.

Bom dia Haroldo,

Fiz o INNER JOIN direto do banco foi de boa, mas quando coloco no SC aparece a mensagem de erro: Parâmetro para ligação de aplicação inexistente (setor_idsetor):

SELECT
idcelula,
setor_idsetor,

nome,
datahora,
cep,
logradouro,
numero,
bairro,
cidade,
estado,
dataMultiplicacao,
diaExtraCelula,
cuidado,
supervisores,
lideres,
anfitriaos,
auxiliares,
dataTimeExtra,
FocoCuidado,
MDAHomens,
MDAMulher,
TAGC,
obs,
situacao,

t2.semana AS frequencia
FROM
celula AS t1
INNER JOIN frequencia AS t2
ON t1.idcelula = t2.membros_celula_idcelula
WHERE t1.setor_idsetor = ‘[var_setor]’ AND t2.semana = ‘[var_semana]’

refaça as ligações

Alterei as ligações a mensagem de erro desapareceu, no entanto, quando faço o filtro ele não retorna nenhum registro com a [var_semana]

Em primeiro lugar agradecer a Ajuda do Kleyber e Haroldo pela força.

Na aplicação controle:

$v_semana={semana};
$v_setor={setor};
sc_redir(Setor_Amarelo.php,var_setor=$v_setor;var_semana=$v_semana,’_self’);

Na Grid
SELECT
t1.idcelula AS idcelula,
t1.setor_idsetor AS setor_idsetor,
t1.nome AS nome,
t1.datahora AS datahora,
t1.cep AS cep,
t1.logradouro AS logradouro,
t1.numero AS numero,
t1.bairro AS bairro,
t1.cidade AS cidade,
t1.estado AS estado,
t1.dataMultiplicacao AS dataMultiplicacao,
t1.diaExtraCelula AS diaExtraCelula,
t1.cuidado AS cuidado,
t1.supervisores AS supervisores,
t1.lideres AS lideres,
t1.anfitriaos AS anfitriaos,
t1.auxiliares AS auxiliares,
t1.dataTimeExtra AS dataTimeExtra,
t1.FocoCuidado AS FocoCuidado,
t1.MDAHomens AS MDAHomens,
t1.MDAMulher AS MDAMulher,
t1.TAGC AS TAGC,
t1.obs AS obs,
t1.situacao AS situacao,
t2.semana AS semana
FROM
celula AS t1
INNER JOIN frequencia AS t2
ON t1.idcelula = t2.membros_celula_idcelula
WHERE t1.setor_idsetor = ‘[var_setor]’ AND t2.semana = ‘[var_semana]’