Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Codigo dinamico en mysql utilizando cursores?

luis12011988

Bovino maduro
Desde
4 Jun 2011
Mensajes
294
Siguiendo este ejemplo:

SELECT des_proveedor,
round(sum(case when year(fecha)=2006 then monto_total end),2) as "2006",
round(sum(case when year(fecha)=2007 then monto_total end),2) as "2007"
FROM tb_documento A,tb_detalle_documento B,tb_producto C,tb_proveedor D
where A.id_documento=B.id_documento and B.id_producto=C.id_producto and
C.id_proveedor=D.id_proveedor
group by 1
order by 1

alguien me podria ayudar a crear un codigo dinamico en mysql a base de cursores en la cual cada vez que recorra esa seleccion me actualice la referencia cruzada respecto al año asi como se muestra en la imagen?

aqui les comparto las tablas a utilizar:

CREATE TABLE `tb_documento` (
`id_documento` varchar(8) NOT NULL,
`id_cliente` varchar(5) DEFAULT NULL,
`id_tipdoc` varchar(5) DEFAULT NULL,
`fecha` datetime DEFAULT NULL,
`ruc` varchar(8) DEFAULT NULL,
`monto_total` float DEFAULT NULL,
PRIMARY KEY (`id_documento`),
KEY `pk_id_cliente` (`id_cliente`),
KEY `pk_id_tipdoc` (`id_tipdoc`),
CONSTRAINT `pk_id_cliente` FOREIGN KEY (`id_cliente`) REFERENCES `tb_cliente` (`id_cliente`),
CONSTRAINT `pk_id_tipdoc` FOREIGN KEY (`id_tipdoc`) REFERENCES `tb_tipo_documento` (`id_tipdoc`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `tb_detalle_documento` (
`id_detdoc` varchar(8) NOT NULL,
`id_producto` varchar(5) DEFAULT NULL,
`id_documento` varchar(8) DEFAULT NULL,
`cantidad` int(11) DEFAULT NULL,
PRIMARY KEY (`id_detdoc`),
KEY `pk_id_producto` (`id_producto`),
KEY `pk_id_documento` (`id_documento`),
CONSTRAINT `pk_id_documento` FOREIGN KEY (`id_documento`) REFERENCES `tb_documento` (`id_documento`),
CONSTRAINT `pk_id_producto` FOREIGN KEY (`id_producto`) REFERENCES `tb_producto` (`id_producto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `tb_producto` (
`id_producto` varchar(5) NOT NULL,
`id_proveedor` varchar(5) DEFAULT NULL,
`des_producto` varchar(30) DEFAULT NULL,
`stock` int(11) DEFAULT NULL,
`precio` float DEFAULT NULL,
PRIMARY KEY (`id_producto`),
KEY `pk_id_proveedor` (`id_proveedor`),
CONSTRAINT `pk_id_proveedor` FOREIGN KEY (`id_proveedor`) REFERENCES `tb_proveedor` (`id_proveedor`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `tb_proveedor` (
`id_proveedor` varchar(5) NOT NULL,
`des_proveedor` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id_proveedor`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

1000128_10201265959561777_547038321_n.jpg
 
Volver
Arriba