Hola que tal a todos, bueno formulo mi pregunta.
El tema es que tengo procedimientos y funciones en postgress(el cual nunca eh usado), y las necesito migrar a sql server 2008 el cual tampoco había usado para pl/sql, me ayudaria mucho si me pudieran cooperar con este asunto, desde ya gracias...
P.D: la version del postgress es 8.4.
Código SQL:
Ver original-- Function: tablastemporales.reporte_total(refcursor, character)
-- DROP FUNCTION tablastemporales.reporte_total(refcursor, character);
CREATE OR REPLACE FUNCTION tablastemporales.reporte_total(pref refcursor, pnumot CHARACTER)
RETURNS refcursor AS
$BODY$BEGIN
OPEN PREF FOR
SELECT
ot.numot,
ot.descripcion,
ot.gastosgenerales,
ot.utilidad,
ot.totalhh AS inyeccionhh,
hh.gastadashh,
ot.totalhh - hh.gastadashh AS quedanhh,
ot.valorcompras AS inyeccioncompras,
compras.gastadascompras,
ot.valorcompras - compras.gastadascompras AS quedancompras,
ot.valormanoobra AS inyeccionvalormanoobra,
manoobra.gastadasvalormanoobra,
ot.valormanoobra - manoobra.gastadasvalormanoobra AS quedanvalormanoobra
FROM ot
LEFT JOIN
(
SELECT round(COALESCE(SUM(horatrato+horanormal+horaextra),0)) AS gastadashh,numot
FROM public.detallehora
GROUP BY numot
) AS hh
ON(
hh.numot=ot.numot
)
LEFT JOIN
(
SELECT round(COALESCE(SUM(precioventa*cantidad),0)) AS gastadascompras,oc.numot
FROM controlbodegacompras.detalleoc,controlbodegacompras.oc
WHERE detalleoc.idoc = oc.idoc AND estado_oc=1 AND sw_cargada_a_ot=1
GROUP BY oc.numot
) AS compras
ON(
compras.numot=ot.numot
),
(
SELECT frmvalorizacionhh AS gastadasvalormanoobra
FROM presupuestos.frmvalorizacionhh(pnumot)
) AS manoobra
WHERE ot.numot=pnumot;
RETURN PREF;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION tablastemporales.reporte_total(refcursor, CHARACTER) OWNER TO postgres;