Problemas com a totalização de um campo manual

Olá, estou com um problemas na totalização do campo (qtd) que é um campo manual, e não está na base de dados. Queria saber se teria alguma forma de pegar o valor total do campo “qtd”,já deixando claro que quando coloco ele na totalização como soma, a aplicação não carrega.

//Colocando valor no campo de quantidade {qtd}

$id_usuario = {id};
$di = {data_acao1};//data de entrada inicial
$df = {data_acao1_2};//data de entrada final

sc_lookup(quantidade, “SELECT COUNT(rede_sus) FROM tbl_rede_sus WHERE id_usuario_droga = ‘$id_usuario’”);
$qtd1 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(rede_socioassistencial) FROM tbl_rede_socioassistencial WHERE id_usuario_droga = ‘$id_usuario’”);
$qtd2 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(demais_politicas_setoriais) FROM tbl_demais_politicas_setoriais WHERE id_usuario_droga = ‘$id_usuario’”);
$qtd3 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(rede_sus) FROM tbl_rede_sus WHERE (data_cadastro between ‘$di’ and ‘$df’) and id_usuario_droga = ‘$id_usuario’”);
$qtd4 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(rede_socioassistencial) FROM tbl_rede_socioassistencial WHERE (data_cadastro between ‘$di’ and ‘$df’) and id_usuario_droga = ‘$id_usuario’”);
$qtd5 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(demais_politicas_setoriais) FROM tbl_demais_politicas_setoriais WHERE (data_cadastro between ‘$di’ and ‘$df’) and id_usuario_droga = ‘$id_usuario’”);
$qtd6 = {quantidade[0][0]};

//se as datas tiverem valor
if($di != ‘’ && $df != ‘’){
{qtd} = ($qtd4 + $qtd5 + $qtd6);
}
//se as datas estiverem vazias
else{
{qtd} = ($qtd1 + $qtd2 + $qtd3);
}

coloque seus select count como subquery na query principal da grid

Estou com o um problema parecido quando coloco a totalização do tipo soma em um campo manual a aplicação quebra

Continuo sugerindo:
coloque seus select count como subquery na query principal da grid

Bom dia, como eu faria uma subquery na query principal da grid. sou iniciante

Apresente aqui sua query principal e o que deseja fazer.

eu preciso da totalização de um campo manual que é preenchido por um conjunto de selects porém quando coloco o campo manual na totalização do tipo soma a aplicação quebra.
segue o select que está dentro do evento onRecord:

//Colocando valor no campo de quantidade {qtd}

$id_usuario = {id};
$di = {data_acao1};//data de entrada inicial
$df = {data_acao1_2};//data de entrada final

sc_lookup(quantidade, “SELECT COUNT(rede_sus) FROM tbl_rede_sus WHERE id_usuario_droga = ‘$id_usuario’”);
$qtd1 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(rede_socioassistencial) FROM tbl_rede_socioassistencial WHERE id_usuario_droga = ‘$id_usuario’”);
$qtd2 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(demais_politicas_setoriais) FROM tbl_demais_politicas_setoriais WHERE id_usuario_droga = ‘$id_usuario’”);
$qtd3 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(rede_sus) FROM tbl_rede_sus WHERE (data_cadastro between ‘$di’ and ‘$df’) and id_usuario_droga = ‘$id_usuario’”);
$qtd4 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(rede_socioassistencial) FROM tbl_rede_socioassistencial WHERE (data_cadastro between ‘$di’ and ‘$df’) and id_usuario_droga = ‘$id_usuario’”);
$qtd5 = {quantidade[0][0]};

sc_lookup(quantidade, “SELECT COUNT(demais_politicas_setoriais) FROM tbl_demais_politicas_setoriais WHERE (data_cadastro between ‘$di’ and ‘$df’) and id_usuario_droga = ‘$id_usuario’”);
$qtd6 = {quantidade[0][0]};

//se as datas tiverem valor
if($di != ‘’ && $df != ‘’){
{qtd} = $qtd4 + $qtd5 + $qtd6;

}
//se as datas estiverem vazias
else{
{qtd} = $qtd1 + $qtd2 + $qtd3;

}

É exatamente o mesmo problema do Edson?

Eu vejo {data_acao1} no sql principal, mas não vejo {data_acao1_2} nessa query. Imagino que também faça parte da tabela tbl_usuario

Colar o texto do SQL facilita mais, em vez da imagem.

Select 
id, 
nome_usuario, 
apelido_usuario, 
data_acao1,
data_acao1_2,
(q1 + q2 + q3 + q4 + q5) as quantidade

from tbl_usuario u,

(SELECT COUNT(rede_sus) as q1 FROM tbl_rede_sus WHERE id_usuario_droga = u.id) as tb1,

(SELECT COUNT(rede_socioassistencial) as q2 FROM tbl_rede_socioassistencial WHERE id_usuario_droga = u.id) as tb2,

(SELECT COUNT(demais_politicas_setoriais) as q3 FROM tbl_demais_politicas_setoriais WHERE id_usuario_droga = u.id) as tb3,

(SELECT COUNT(rede_socioassistencial) as q4 FROM tbl_rede_socioassistencial WHERE (data_cadastro between u.data_acao1 and u.data_acao1_2 and id_usuario_droga = u.id) as tb4,

(SELECT COUNT(demais_politicas_setoriais) as q5 FROM tbl_demais_politicas_setoriais WHERE (data_cadastro between u.data_acao1 and u.data_acao1_2) and id_usuario_droga = u.id) as tb5

order by nome_usuario_droga

INNER JOIN entre as tabelas também funciona, afinal id_usuario liga tdodas as tabelas
Ideal é criar uma view em cima da query acima.

A idéia principal é essa. Não tenho como testar o código, mas se necessitar ajustes fica mais fácil desde que se compreenda o contexto da sugestão.

de um feedback após os testes.

sim é o mesmo problema. A {data_acao1_2} não está no banco é ela é gerada pelo scriptcase quando é feito o filtro.

A idéia é a mesma, apenas que terá que usar a segunda data como uma ‘[global]’.

bom dia! implementei o sql porem deu erro: 1064: Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde à versão do seu servidor MySQL para a sintaxe correta para usar perto de ‘as tb4, (SELECT COUNT(demais_politicas_setoriais) as q5 FROM tbl_demais_politic’ na linha 1

Bom dia.
Eu apenas sugeri o código, não tinha como enviar uma query 100% correta pois não tenho essa base em meu servidor para testar.

Tem que localizar o erro.

Teste direto no banco de dados.

1 Curtida