17/08/2012, 09:10
|
| | Fecha de Ingreso: noviembre-2007
Mensajes: 37
Antigüedad: 17 años Puntos: 0 | |
Respuesta: Order By Este es el codigo completo al poner ORDER BY CAST(LEFT(serie,3) AS UNSIGNED, no_factura me da error de sintaxis
Código:
DELIMITER $$
DROP PROCEDURE IF EXISTS `usp_correlativoPlanta` $$
CREATE DEFINER=`factura`@`%` PROCEDURE `usp_correlativoPlanta`(
in pFechaInicial date,
in pFechaFinal date,
in pCodigoPlanta varchar(50)
)
BEGIN
DROP TABLE IF EXISTS Tmp;
CREATE TABLE Tmp
SELECT factura.fecha as fecha, factura.serie as serie, factura.no_factura as no_factura,
planta.codigo as codigo, planta.nombre as nombre_planta,factura.nombre_cliente as nombre_cliente,
if(articulo.codigo='2005', factura_detalle.cantidad,0) as CL05,
if(articulo.codigo='2010', factura_detalle.cantidad,0) as CL10,
if(articulo.codigo='2020', factura_detalle.cantidad,0) as CL20,
if(articulo.codigo='2025', factura_detalle.cantidad,0) as CL25,
if(articulo.codigo='2035', factura_detalle.cantidad,0) as CL35,
if(articulo.codigo='2040', factura_detalle.cantidad,0) as CL40,
if(articulo.codigo='2060', factura_detalle.cantidad,0) as CL60,
if(articulo.codigo='2100', factura_detalle.cantidad,0) as CL100,
if(articulo.codigo='2005' or articulo.codigo='2010' or articulo.codigo='2020' or articulo.codigo='2025'
or articulo.codigo='2035' or articulo.codigo='2040' or articulo.codigo='2060' or articulo.codigo='2100',factura_detalle.galones,0) as equival_galones,
if(articulo.tipo="A",cantidad,0) as carburacion,
if(articulo.tipo="G",cantidad,0) as granel,
if(factura.tipo_pago="C",factura.total,0) as contado,
if(factura.tipo_pago="R",factura.total,0) as credito
from factura
left join factura_detalle on factura.facturaid=factura_detalle.facturaid
inner join planta on factura.plantaid=planta.plantaid
left join articulo on factura_detalle.articuloid=articulo.articuloid;
select date_format(fecha,'%Y/%m/%d'), serie, no_factura, nombre_cliente, nombre_planta,
(sum(CL05)*5 + sum(CL10)*10 + sum(CL20)*20 + sum(CL25)*25 + sum(CL35)*35 + sum(CL40)*40 + sum(CL60)*60 + sum(CL100)*100) as libras,
sum(equival_galones) as cilindros,sum(carburacion) as carburacion, sum(granel) as granel,
(contado + credito) as total
from tmp c
where
date_format(fecha, '%Y/%m/%d') between pFechaInicial and pFechaFinal
and upper(codigo) = upper(pCodigoPlanta)
group by serie,no_factura,fecha ORDER BY CAST(LEFT(serie,3) AS UNSIGNED, no_factura;
END $$
DELIMITER ;
|