From: | "Sergio Villalba Moreno" <svillalba(at)cherrytel(dot)com> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Función SQL/PL en versión 7.4 |
Date: | 2011-04-05 16:28:30 |
Message-ID: | 98C6D5F839C84DF0BA8CC820AC1F2E48@tecnico2 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos,
Estoy intentando realizar un procedimiento almacenado con una consulta algo
compleja
La consulta es esta:
SELECT sum(round("numeric"(float8(detalle_facturas.cantidad) *
(detalle_facturas.precio_unidad - detalle_facturas.precio_unidad *
detalle_facturas.porc_descuento / 100::double precision) *
(detalle_facturas.porc_comision / 100::double precision)), 2)) AS total FROM
facturas, contratos, detalle_facturas, agentes WHERE facturas.c_contrato =
contratos.clave AND facturas.clave = detalle_facturas.c_factura AND
contratos.c_agente = agentes.clave AND contratos.b_baja = false AND
contratos.clave=1928
Como no consigo realizar la consulta en el procedimiento almacenado, he
pensado en esta alternativa, aunque no funciona correctamente.
CREATE FUNCTION precioTotalFactura(integer) RETURNS text AS '
DECLARE
-- Declare aliases for user input.
id ALIAS FOR $1;
-- Declare variables to hold the customer name.
f_precio_unidad int;
f_porc_descuento int;
f_cantidad int;
f_porc_comision int;
f_total int;
BEGIN
SELECT INTO f_porc_comision, f_precio_unidad, f_porc_descuento,
f_cantidad, f_porc_comision
detalle_facturas.porc_comision,
detalle_facturas.precio_unidad, detalle_facturas.porc_descuento,
detalle_facturas.cantidad
FROM facturas, contratos, detalle_facturas, agentes
WHERE facturas.c_contrato = contratos.clave AND facturas.clave
= detalle_facturas.c_factura AND contratos.c_agente = agentes.clave AND
contratos.b_baja = false AND contratos.clave = id;
--calculamos el total
f_total = (f_cantidad * f_precio_unidad) * (f_porc_comision / 100);
-- Return the name.
RETURN id || '':'' || f_total;
END
' LANGUAGE 'plpgsql';
Alguien me puede dar alguna idea, gracias.
Gracias, saludos.
From | Date | Subject | |
---|---|---|---|
Next Message | Sergio | 2011-04-05 16:29:30 | Función SQL/PL en versión 7.4 |
Previous Message | Alvaro Herrera | 2011-04-05 16:19:21 | Re: comportamiento diferente en PG9.0.3 |