Buenos Dias
Tengo este procedimiento almacenado me realiza un proceso de mayoriazacion dependiendo del centro de costo, cuando realizo una consulta en la que me muestra el valor mayor no me funciona la insercion pero si quieto esta consulta si funciona, pero no como deberia
Agradeceria toda la ayuda que me puedan brindar
Código MySQL:
Ver originalDECLARE detalle_cur CURSOR FOR
SELECT detalle.id_cabecera
, detalle.codigo_cuenta
, detalle.sucursal
, detalle.debito
, detalle.credito
, detalle.tercero
, detalle.centrocosto
FROM " . $tablaMes . " as detalle
HAVING detalle.id_cabecera
= " . $idComprobante . "; OPEN detalle_cur;
FETCH detalle_cur
INTO v_id_cabecera
, v_codigo_cuenta
, v_sucursal
, v_debito
, v_credito
, v_tercero
, v_centro_costo
; SET tmp_continuar
= continuar
; SELECT v_codigo_cuenta
, v_sucursal
, v_debito
, v_credito
, v_tercero
, v_centro_costo
;
loop_interno: LOOP
SELECT id_centro_costo
,id_padre
FROM centros_costo
WHERE id_centro_costo
= v_centro_costo
INTO v_centro_costo_ce
, padre_centro_costo
; SELECT v_centro_costo_ce
, padre_centro_costo
;
SELECT id
FROM " . $tablaSaldos . " WHERE cuenta
= v_codigo_cuenta
and tercero
= v_tercero
and sucursal
= v_sucursal
and centroCosto
= v_centro_costo
INTO v_id_saldo
; INSERT INTO " . $tablaSaldos . " (cuenta
,tercero
,sucursal
,centroCosto
," . $campoDebito . "," . $campoCredito . ") VALUES(`v_codigo_cuenta`,`v_tercero`,`v_sucursal`, `v_centro_costo`,v_debito
,v_credito
); UPDATE " . $tablaSaldos . " SET " . $campoDebito . " = " . $campoDebito . $signo . " v_debito
, " . $campoCredito . " = " . $campoCredito . $signo . " v_credito
WHERE id
= v_id_saldo
;
INSERT INTO " . $tablaSaldos . " (cuenta
,centroCosto
," . $campoDebito . "," . $campoCredito . ") VALUES(`v_codigo_cuenta`,`v_centro_costo`,v_debito
,v_credito
); UPDATE " . $tablaSaldos . " SET " . $campoDebito . " = " . $campoDebito . $signo . " v_debito
, " . $campoCredito . " = " . $campoCredito . $signo . " v_credito
WHERE id
= v_id_saldo
;
SET v_centro_costo
= padre_centro_costo
; LEAVE loop_interno;
SET continuar
= tmp_continuar
; CLOSE detalle_cur;
[/PHP]