Para seleccionar solo los que tiene mas de 5000 hice lo que veras a continuación no se si es lo mejor que hecho, existe alguna forma de optimizar el código?, ahora lo que deseo que si existe por lo menos uno con mas de 5000 o 2 o los que haya, almacenarlos en una nueva tabla llamada transac_inu tomando en cuenta que solo insertaré los que tengan un nuevo ci_be, si el ci_be ya existe y se encuentra en el rango de fechas, en la nueva tabla solo actualizaré el sum_monto.
Este es el código que tengo pero no hallo forma de hacerlo funcionar correctamente, denme una mano por favor. Por cierto el having que se mensiona en el comentario anterior por chiviwalker aun no lo pruebo, si eso otimiza lo que tengo házmelo saber.
Código PHP:
$result = BDConexion("select ci_be, sum(monto_oc_dls) as sum_monto from solicitud WHERE fecha_sys BETWEEN '$fecha_ant' AND '$fecha_hoy' group by ci_be") or die($error_conex);
if(mysql_num_rows($result) > 0) {
while($r = mysql_fetch_array($result)){
if($r['sum_monto'] > 4999){
$trans_num = $trans_num + 1;
$ci_be = $r['ci_be'];
$monto_be = $r['sum_monto'];
}
$result_tran = BDConexion("select * from transac_inu") or die($error_conex);
$r_tran = mysql_fetch_array($result_tran);
$id_tran = $r_tran['id_transac_inu'];
$fecha_tran = $r_tran['fecha'];
$ci_be_tran = $r_tran['ci_be'];
mysql_free_result($result_tran);
//// Actualizo transacción si es el mismo mes y el mismo ci_be y si es un monto distinto
if($fecha_ant == $fecha_tran && $monto_be != $r_tran['sum_monto'] && $ci_b == $ci_be_tran){
$up_tran['sum_monto'] = $monto_be;
BDUpdate('transac_inu', $up_tran, $id_tran) or die($error_conex);
}
}
}