karlangadas

pregunta 5 lab 4 bd

Oct 28th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.19 KB | None | 0 0
  1. CREATE OR REPLACE PROCEDURE P_Top3Clientes( pMontoTotal OUT NUMBER) IS
  2. BEGIN
  3.  
  4. --Cantidad Clientes sobre monto mas vendido
  5. SELECT SUM(TOTAL) INTO pMontoTotal
  6. FROM
  7. (
  8. SELECT IDCLIENTE, TOTAL FROM
  9. (SELECT  CLI.IDCLIENTE, SUM( PED.MONTOTOTAL) TOTAL
  10. FROM L4_CLIENTE CLI , L4_PEDIDO PED
  11. WHERE  CLI.IDCLIENTE = PED.IDCLIENTE
  12. AND TO_CHAR(PED.FECHAPEDIDO, 'MM-YYYY') = TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM-YYYY')
  13. GROUP BY CLI.IDCLIENTE
  14. ORDER BY 2 DESC
  15. ) CLIENTES
  16. WHERE ROWNUM<=3
  17. ) CLIENTES2;
  18.  
  19. --update de clasificacion de clientes
  20. UPDATE L4_CLIENTE
  21. SET IDCLASCLIENTE=5
  22. WHERE IDCLASCLIENTE IN (SELECT IDCLIENTE
  23.                       FROM (SELECT IDCLIENTE, TOTAL
  24.                             FROM (SELECT  CLI.IDCLIENTE, SUM( PED.MONTOTOTAL) TOTAL
  25.                                   FROM L4_CLIENTE CLI , L4_PEDIDO PED
  26.                                   WHERE  CLI.IDCLIENTE = PED.IDCLIENTE
  27.                                   AND TO_CHAR(PED.FECHAPEDIDO, 'MM-YYYY') = TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM-YYYY')
  28.                                   GROUP BY CLI.IDCLIENTE
  29.                                   ORDER BY 2 DESC) CLIENTES
  30.                                   WHERE ROWNUM<=3));
  31.  
  32. END P_Top3Clientes;
Advertisement
Add Comment
Please, Sign In to add comment