Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR ALTER PROCEDURE VKY_ZZZZ_TEMP
- RETURNS (
- ANHO SMALLINT,
- CLIENTE VARCHAR(1024),
- CANTIDAD INTEGER,
- TEXTO_ARMADO VARCHAR(32))
- AS
- DECLARE variable ID_CLIENTE_L INTEGER;
- DECLARE variable CANTIDAD_ANHOS_ANTERIORES INTEGER;
- BEGIN
- FOR--1er. for select, de distintos años, en caso de no tener ninguna tabla años
- SELECT EXTRACT(YEAR FROM f.fecha_documento) AS anho
- FROM facturaciones f
- GROUP BY EXTRACT(YEAR FROM f.fecha_documento)
- INTO :anho
- do BEGIN
- --2do. for select, Clientes
- FOR
- SELECT c.cliente, c.id_cliente
- FROM clientes_v c
- WHERE c.cliente containing 'S.A.'
- ORDER BY c.cliente
- INTO :cliente, :id_cliente_l
- do BEGIN
- --obtengo la cantidad de facturas emitidas al cliente, en el año dado.
- SELECT COUNT(f.id_factura)
- FROM facturaciones f
- WHERE f.id_cliente = :id_cliente_l
- AND EXTRACT(YEAR FROM f.fecha_documento) = :anho
- AND UPPER(f.estado) <> UPPER('anulado')
- INTO :cantidad;
- --obtengo la cantidad de facturas emitidas al cliente, en años anteriores al año en cuestion
- SELECT COUNT(f.id_factura)
- FROM facturaciones f
- WHERE f.id_cliente = :id_cliente_l
- AND EXTRACT(YEAR FROM f.fecha_documento) < :anho
- AND UPPER(f.estado) <> UPPER('anulado')
- INTO :cantidad_anhos_anteriores;
- IF (:cantidad > 0 AND :cantidad_anhos_anteriores > 1) THEN
- texto_armado = 'Re-Compra';
- ELSE IF (:cantidad > 0 AND :cantidad_anhos_anteriores = 0) THEN
- texto_armado = 'Compra';
- ELSE IF (:cantidad = 0) THEN
- texto_armado = 'NO-Compra';
- suspend;
- END--fin 2do. for select, clientes
- END---fin 1er. for select, para extraer los distintos años
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement