Advertisement
karlangadas

pregunta 3 lab 4 bd

Oct 28th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.58 KB | None | 0 0
  1. CREATE OR REPLACE PROCEDURE P_MenosVendido(  pPorcentajeDescuento IN L4_PROMOCIONREBAJA.PORCENTAJEDESCUENTO%TYPE, pNombreProducto OUT L4_PRODUCTO.NOMBRE %TYPE) IS
  2. idproductoMenosVendido NUMBER;
  3. iPromocion NUMBER;
  4. idNuevaPromocion NUMBER;
  5. BEGIN
  6. -- Producto menos vendido
  7. SELECT NOMBRE AS pNombreProducto INTO pNombreproducto
  8. FROM (
  9. SELECT  PRO.NOMBRE, SUM( PRO.PRECIO*DET.CANTIDAD) MONTOVENDIDO
  10. FROM L4_DETALLEPEDIDO DET , L4_PRODUCTO PRO, L4_PEDIDO PED
  11. WHERE  DET.IDPEDIDO = PED.IDPEDIDO AND DET.IDPRODUCTO= PRO.IDPRODUCTO
  12. AND TO_CHAR(PED.FECHAPEDIDO, 'MM-YYYY') = TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM-YYYY')
  13. GROUP BY PRO.NOMBRE
  14. ORDER BY 2 ASC) PRODUCTOS
  15. WHERE ROWNUM=1
  16. ;
  17. --Revisar si el producto si tiene promocion
  18. SELECT IDPRODUCTO INTO idproductoMenosVendido FROM L4_PRODUCTO WHERE NOMBRE = pNombreProducto;
  19.  
  20. SELECT COUNT(*) INTO iPromocion
  21. FROM L4_PROMOCION PRO, L4_PROMOCIONREBAJA REB
  22. WHERE PRO.IDPROMOCION = REB.IDPROMOCION AND FECHAINICIO<SYSDATE AND FECHARETIRO>SYSDATE
  23. AND PRO.IDPRODUCTO = idproductoMenosVendido
  24. ;
  25.  
  26. IF iPromocion =0 THEN
  27.     --calculo id para nueva promoción en la tabla L4_PROMOCION
  28.     SELECT MAX(IDPROMOCION) + 1 INTO idNuevaPromocion
  29.     FROM l4_PROMOCION ;    
  30. --Inserción de la Promoción en la table L4_PROMOCION
  31.     INSERT INTO L4_PROMOCION VALUES (  idNuevaPromocion,  idproductoMenosVendido, pNombreProducto, SYSDATE, ADD_MONTHS(SYSDATE,1));
  32.      --calculo id para la nueva promocionrebaja en la tabla L4_PROMOCIÓN REBAJA
  33.     INSERT INTO L4_PROMOCIONREBAJA VALUES (idNuevaPromocion,pPorcentajeDescuento );
  34.     COMMIT;
  35. END IF;
  36. END P_MenosVendido;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement