Caros boa noite, estou com uma dúvida
Preciso de ajuda no $sql3 ou reformular a minha lógica:
Atualmente estou fazendo assim:
1. Encontrar as equipes que fazem parte da atividade;
2. Encontrar os participantes da equipe;
3. Somar os pontos dos participantes da equipe;
O que eu preciso fazer é somar os pontos (ATV_XP) da tabela (USUARIOS_ATIVIDADE) dos usuários (USU_CODIGO) que pertencem a equipe (EQP_CODIGO);
Possuo 2 tabelas:
TABELA USUARIOS_ATIVIDADE campos principais:
ATV_CODIGO (código da atividade),
USU_CODIGO (código do usuário),
ATV_XP (pontos do usuário)
aqui faço os controles de interações dos usuários;
TABELA EQUIPES campos principais:
ATV_CODIGO (código da atividade),
EQP_CODIGO (código da equipe),
EQP_USUARIO (código do usuário),
aqui eu controlo as equipes das atividades
Segue abaixo como estou fazendo hoje, valeu abraço.
public function getMembrosEquipes($id) {
$retorno = array();
$cont = 0;
//select para verificar as equipes da atividade
$sql = "SELECT DISTINCT EQP_CODIGO, EQP_NOME
FROM EQUIPES
WHERE ATV_CODIGO =".$id;
$exc = new OracleRecordset($this->conexao->execute($sql));
//echo "@@@@@".$sql;
while($exc->fetch()) {
//select para encontrar os participantes da equipe da atividade
$sql2 = "SELECT EQP_USUARIO
FROM EQUIPES
WHERE EQP_CODIGO =".$exc->getResult('EQP_CODIGO')."
AND ATV_CODIGO =".$id;
$exc2 = new OracleRecordset($this->conexao->execute($sql2));
$exc2->fetch();
//echo "#####".$sql2;
$usu = $exc2->getResult('EQP_USUARIO');
$equipe = $exc->getResult('EQP_CODIGO');
//select para somar os pontos do usuário na tabela USUARIOS_ATIVIDADE
$sql3 = "SELECT count(DISTINCT UA.USU_CODIGO), sum(UA.ATV_XP) AS ATV_XP, U.USU_CODIGO, U.USU_NOME, U.USU_SOBRENOME, U.USU_IMAGEM, U.USU_XP
FROM USUARIOS_ATIVIDADE UA
LEFT OUTER JOIN USUARIOS U ON (UA.USU_CODIGO = U.USU_CODIGO)
WHERE UA.ATV_CODIGO = ".$id."
GROUP BY UA.USU_CODIGO
ORDER BY ATV_XP DESC";
$exc3 = new OracleRecordset($this->conexao->execute($sql3));
$exc3->fetch();
echo "#####".$sql3;
$atvbean = new AtividadesBean();
$atvbean->setAtvXp($exc3->getResult('ATV_XP'));
$eqpbean = new EquipesBean();
$eqpbean->setEqpParticipantes($exc2->getResult('EQP_USUARIO'));
$eqpbean->setEqpCodigo($exc->getResult('EQP_CODIGO'));
$eqpbean->setEqpNome($exc->getResult('EQP_NOME'));
$eqpbean->setEqpAtvXp($atvbean);
$retorno[$cont] = $eqpbean;
$cont++;
}
unset($exc);
unset($exc2);
unset($exc3);
return $retorno;
}