Alterar o select de acordo com o filtro selecionado

Bom dia, criei uma aplicação de consulta e filtro. No filtro, criei o campo “tipo”: - Tipo de seleção, do tipo radio. Gostaria que se o usuário clicasse no primeiro radio, executasse o seguinte select:
$sql_tipo = "SELECT COUNT() as bateladas, "
."CF.Descricao, "
."CP.CodGrupoProd, "
."sum(BatRI.PesoDosado) as PesoDosado "
."FROM Opr_Producao_Reg OPR "
."left join Opr_Producao_Reg_Bat BatR on (BatR.NumeroProducao = OPR.NumeroProducao) "
."left join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroBatelada = BatRI.NumeroBatelada and BatR.NumeroProducao = BatRI.NumeroProducao) "
."Left Join Cad_Formula CF on (OPR.CodFormula=CF.CodFormula) "
."Left Join Cad_Produto CP on (CF.CodProd=CP.CodProd) "
."where OPR.CodFormula is not null "
."GROUP BY CF.Descricao, CP.CodGrupoProd "
."ORDER BY CF.Descricao, CP.CodGrupoProd ";
e se selecionasse o segundo executasse o seguinte select:
$sql_tipo = "SELECT COUNT(
) as bateladas, "
."CP.Descricao, "
."CP.CodGrupoProd, "
."sum(BatRI.PesoDosado) as PesoDosado "
."FROM Opr_Producao_Reg OPR "
."left join Opr_Producao_Reg_Bat BatR on (BatR.NumeroProducao = OPR.NumeroProducao) "
."left join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroBatelada = BatRI.NumeroBatelada and BatR.NumeroProducao = BatRI.NumeroProducao) "
."Left Join Cad_Formula CF on (OPR.CodFormula=CF.CodFormula) "
."Left Join Cad_Produto CP on (CF.CodProd=CP.CodProd) "
."where OPR.CodFormula is not null "
."GROUP BY CP.Descricao, CP.CodGrupoProd "
."ORDER BY CP.Descricao, CP.CodGrupoProd ";

Já coloquei no evento onValidate do form usando o sc_exec_Sql mas náo funcionou. Tentei no evento onScriptIni, usando a função sc_select, mas nenhum funcionou.
segue abaixo todo meu código do evento onScriptIni da consulta. O que está faltando para mudar o select??
if ({tipo} == 1) {
$sql_tipo = "SELECT COUNT() as bateladas, "
."CF.Descricao, "
."CP.CodGrupoProd, "
."sum(BatRI.PesoDosado) as PesoDosado "
."FROM Opr_Producao_Reg OPR "
."left join Opr_Producao_Reg_Bat BatR on (BatR.NumeroProducao = OPR.NumeroProducao) "
."left join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroBatelada = BatRI.NumeroBatelada and BatR.NumeroProducao = BatRI.NumeroProducao) "
."Left Join Cad_Formula CF on (OPR.CodFormula=CF.CodFormula) "
."Left Join Cad_Produto CP on (CF.CodProd=CP.CodProd) "
."where OPR.CodFormula is not null "
."GROUP BY CF.Descricao, CP.CodGrupoProd "
."ORDER BY CF.Descricao, CP.CodGrupoProd ";
} else {
$sql_tipo = "SELECT COUNT(
) as bateladas, "
."CP.Descricao, "
."CP.CodGrupoProd, "
."sum(BatRI.PesoDosado) as PesoDosado "
."FROM Opr_Producao_Reg OPR "
."left join Opr_Producao_Reg_Bat BatR on (BatR.NumeroProducao = OPR.NumeroProducao) "
."left join Opr_Producao_Reg_Bat_Item BatRI on (BatR.NumeroBatelada = BatRI.NumeroBatelada and BatR.NumeroProducao = BatRI.NumeroProducao) "
."Left Join Cad_Formula CF on (OPR.CodFormula=CF.CodFormula) "
."Left Join Cad_Produto CP on (CF.CodProd=CP.CodProd) "
."where OPR.CodFormula is not null "
."GROUP BY CP.Descricao, CP.CodGrupoProd "
."ORDER BY CP.Descricao, CP.CodGrupoProd ";
}
sc_select(meus_dados, $sql_tipo);
if ({meus_dados} === false)
{
echo "Erro de acesso. Mensagem = " . {meus_dados_erro};
}
else
{
while (!$meus_dados->EOF){
{bateladas} = $meus_dados->fields[0];
{Descricao} = $meus_dados->fields[1];
{CodGrupoProd} = $meus_dados->fields[2];
{PesoDosado} = $meus_dados->fields[3];
$meus_dados->MoveNext();
}
$meus_dados->Close();

O SELECT da consulta é fixo, você não pode alterar ele dinamicamente, neste caso deve-se fazer 2 consultas separadas, a única coisa
que o select aceita é o filtro, e depois mostrar ou ocultar colunas.

tinha tentado fazer um case when dentro do select, usando esse {tipo} como parâmetro, mas não funcionou.

select case when {filtro} = 1 then CF.Descricao else CP.Descricao

mas quando coloco o case when no group by dá erro.

Como que vinculo duas consultas com o mesmo filtro???

crie uma view com select union all, monte consulta em cima disso.

No fltro vc seleciona o tipo de registro.

Alguem sabem qual momento funciona as funções sc_select e sc_exec_sql?

Não deveria alterar o select da consulta tb usando essas funções?

Não posso criar views no banco. Só podemos consultar.

Outra coisa,
Alguém sabe por que que quando executo o sql direto no Studio roda, com o case when no group by, e no SC dá erro??

Solicito que estude as macros no webhelp para se inteirar melhor sobre os funcionamentos delas.

O SC trata o sql da consulta e o modifica para obter dados necessários para paginação e as vezes dependendo da complexabilidade da instrução pode ocorrer o erro.

Se você tem impedimentos em mexer na estrutura do banco, criar tabelas temporárias, views etc vai ser difícil desenvolver um projeto complexo em cima desse banco.