Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --PREGUNTA 7
- CREATE OR REPLACE FUNCTION f_MotivoVariacionPedidos(p_valor NUMBER ) RETURN NUMBER IS
- pMonto NUMBER;
- pMontoaux NUMBER;
- fecha DATE;
- productaux L4_PRODUCTO.IDPRODUCTO%TYPE;
- product L4_PRODUCTO.IDPRODUCTO%TYPE;
- BEGIN
- IF p_valor >0 THEN
- SELECT TABLA.IDPRODUCTO INTO product
- FROM
- (SELECT TO_CHAR(PED.FECHAPEDIDO, 'MM-YYYY'), PROD.IDPRODUCTO, SUM(ped.montototal)
- FROM L4_PEDIDO PED, L4_PRODUCTO PROD, L4_DETALLEPEDIDO DET
- WHERE
- PED.IDPEDIDO=DET.IDPEDIDO
- AND DET.IDPRODUCTO=PROD.IDPRODUCTO
- AND TO_CHAR(PED.FECHAPEDIDO, 'MM-YYYY') = TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM-YYYY')
- GROUP BY TO_CHAR(PED.FECHAPEDIDO, 'MM-YYYY'), PROD.IDPRODUCTO
- ORDER BY SUM(ped.montototal) DESC) TABLA
- WHERE ROWNUM=1;
- SELECT PROD.IDPRODUCTO, SUM( ped.montototal)
- INTO productaux, pMonto
- FROM L4_PEDIDO PED, L4_PRODUCTO PROD, L4_DETALLEPEDIDO DET
- WHERE
- PED.IDPEDIDO=DET.IDPEDIDO
- AND DET.IDPRODUCTO=PROD.IDPRODUCTO
- AND PROD.IDPRODUCTO=product
- GROUP BY PROD.IDPRODUCTO;
- ELSE
- SELECT SUM( ped.montototal ) INTO pMonto
- FROM L4_PEDIDO PED
- WHERE
- TO_CHAR(PED.FECHAPEDIDO, 'MM-YYYY') = TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM-YYYY')
- AND PED.IDESTADOPEDIDO = 4;
- END IF;
- RETURN pMonto;
- END;
- SET SERVEROUTPUT ON
- DECLARE
- resp NUMBER;
- BEGIN
- resp:=f_MotivoVariacionPedidos(1);
- DBMS_OUTPUT.put_line(resp);
- END;
Advertisement
Add Comment
Please, Sign In to add comment