Ver Mensaje Individual
  #1  
Antiguo 05-07-2016
itsspxndx itsspxndx is offline
Registrado
NULL
 
Registrado: jul 2016
Posts: 6
Reputación: 0
itsspxndx Va por buen camino
Agrupar consultas

Hola quisiera que me apoyaran en esto, tengo una consulta que calcula las ventas totales de los articulos durante los 12 meses, agrupado por Grupo de cliente y posteriormente los articulos vendidos a ese grupo de cliente. Pero requiero que me calcule tambien subtotales por cada grupo de cliente. Solo he logrado calcular el total general de todos los clientes vendido en ese año

aquí lo que he conseguido:

ORGANIZACION------NOMBRE------------------------------------------------TOTAL-----ENERO----FEBRERO----MARZO
ABA MTY--------------ACCESS POINT UBIQUITI AIR MAX ROCKET M5-----200.00-----0.00------0.00----------0.00
ABA MTY--------------ACCESS POINT UBIQUITI AIRGATEWAYLR-----------230.00-----0.00------40.00--------0.00
ABA SANCHE---------ABRAZADERA TIPO NUDO CABLE 3/16----------------455.00----400.00----0.00----------55.00
ABA SANCHE---------ACCESS POINT TP LINK TL-WA701ND----------------616.54-----304.08----0.00----------312.46
TOTAL--------------------------------------------------------------------------1501.54----704.08----40.00---------367.46

Lo que requiero:

ORGANIZACION------NOMBRE------------------------------------------------TOTAL-----ENERO----FEBRERO----MARZO
ABA MTY--------------ACCESS POINT UBIQUITI AIR MAX ROCKET M5-----200.00-----0.00------0.00----------0.00
ABA MTY--------------ACCESS POINT UBIQUITI AIRGATEWAYLR-----------230.00-----0.00------40.00--------0.00
ABA MTY------------------------------------------------------------------------430.00-----0.00------40.00--------0.00
ABA SANCHE---------ABRAZADERA TIPO NUDO CABLE 3/16----------------455.00-----400.00----0.00----------55.00
ABA SANCHE---------ACCESS POINT TP LINK TL-WA701ND-----------------616.54-----304.08----0.00----------312.46
ABA SANCHE-------------------------------------------------------------------1071.54-----704.08----0.00---------367.46
TOTAL--------------------------------------------------------------------------1501.54----704.08----40.00---------367.46


y este es mi codigo actual:

Código:
CREATE PROCEDURE LAGE_VENTA_ORGA_PROD_GROUP_2(
  V_ORGANIZACION VARCHAR(30),
  V_PRODUCTO VARCHAR(30),
  V_YEAR1 INTEGER,
  V_YEAR2 INTEGER,
  V_YEAR3 INTEGER,
  V_YEAR4 INTEGER,
  V_TIPO_DESGLOSE VARCHAR(2))
RETURNS(
  ORGANIZACION_LEIDO VARCHAR(30),
  CLIENTE_ID INTEGER,
  ELEM_ID INTEGER,
  NOMBRE VARCHAR(100),
  ANIO_CALCULADO INTEGER,
  /* PESOS */
  VENTA_IMPORTE_MES1 NUMERIC(15, 2),
  VENTA_IMPORTE_MES2 NUMERIC(15, 2),
  VENTA_IMPORTE_MES3 NUMERIC(15, 2),
  VENTA_IMPORTE_MES4 NUMERIC(15, 2),
  VENTA_IMPORTE_MES5 NUMERIC(15, 2),
  VENTA_IMPORTE_MES6 NUMERIC(15, 2),
  VENTA_IMPORTE_MES7 NUMERIC(15, 2),
  VENTA_IMPORTE_MES8 NUMERIC(15, 2),
  VENTA_IMPORTE_MES9 NUMERIC(15, 2),
  VENTA_IMPORTE_MES10 NUMERIC(15, 2),
  VENTA_IMPORTE_MES11 NUMERIC(15, 2),
  VENTA_IMPORTE_MES12 NUMERIC(15, 2),
  VENTA_TOTAL NUMERIC(15, 2))
AS
DECLARE VARIABLE TEMP_CLIENTE_ID INTEGER DEFAULT '0';
DECLARE VARIABLE TEMP_ELEM_ID INTEGER DEFAULT '0';
DECLARE VARIABLE TEMP_ORGANIZACION VARCHAR(30);
DECLARE VARIABLE TEMP_NOMBRE VARCHAR(100);
DECLARE VARIABLE TEMP_ANIO_CALCULADO INTEGER DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES1 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES2 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES3 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES4 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES5 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES6 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES7 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES8 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES9 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES10 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES11 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_IMPORTE_MES12 NUMERIC(15, 2) DEFAULT '0';
DECLARE VARIABLE TEMP_VENTA_TOTAL NUMERIC(15, 2) DEFAULT '0';
BEGIN

TEMP_ORGANIZACION = 'ORGANIZACION';
   FOR SELECT 
   ORGANIZACION,ANIO_CALCULADO,NOMBRE,MIN(ELEM_ID),MIN(CLIENTE_ID),
   SUM(VENTA_IMPORTE_MES1),SUM(VENTA_IMPORTE_MES2),SUM(VENTA_IMPORTE_MES3),SUM(VENTA_IMPORTE_MES4),
   SUM(VENTA_IMPORTE_MES5),SUM(VENTA_IMPORTE_MES6),SUM(VENTA_IMPORTE_MES7),SUM(VENTA_IMPORTE_MES8),
   SUM(VENTA_IMPORTE_MES9),SUM(VENTA_IMPORTE_MES10),SUM(VENTA_IMPORTE_MES11),SUM(VENTA_IMPORTE_MES12), 
   SUM(VENTA_TOTAL)
   FROM LAGE_VENTA_ORGA_PROD_FILTR(:V_ORGANIZACION,:V_PRODUCTO,:V_YEAR1, :V_YEAR2,:V_YEAR3,:V_YEAR4,
   :V_TIPO_DESGLOSE)
   GROUP BY ANIO_CALCULADO,ORGANIZACION,NOMBRE
   ORDER BY ANIO_CALCULADO,ORGANIZACION,NOMBRE
   INTO
   ORGANIZACION_LEIDO,ANIO_CALCULADO,NOMBRE,ELEM_ID,CLIENTE_ID,VENTA_IMPORTE_MES1,VENTA_IMPORTE_MES2,
   VENTA_IMPORTE_MES3,VENTA_IMPORTE_MES4,VENTA_IMPORTE_MES5,VENTA_IMPORTE_MES6,VENTA_IMPORTE_MES7,
   VENTA_IMPORTE_MES8,VENTA_IMPORTE_MES9,VENTA_IMPORTE_MES10,VENTA_IMPORTE_MES11,VENTA_IMPORTE_MES12,
   VENTA_TOTAL
   DO
	
    BEGIN

            TEMP_VENTA_IMPORTE_MES1 = TEMP_VENTA_IMPORTE_MES1		+VENTA_IMPORTE_MES1;
            TEMP_VENTA_IMPORTE_MES2 = TEMP_VENTA_IMPORTE_MES2		+VENTA_IMPORTE_MES2;
            TEMP_VENTA_IMPORTE_MES3 = TEMP_VENTA_IMPORTE_MES3		+VENTA_IMPORTE_MES3;
            TEMP_VENTA_IMPORTE_MES4 = TEMP_VENTA_IMPORTE_MES4		+VENTA_IMPORTE_MES4;
            TEMP_VENTA_IMPORTE_MES5 = TEMP_VENTA_IMPORTE_MES5		+VENTA_IMPORTE_MES5;
            TEMP_VENTA_IMPORTE_MES6 = TEMP_VENTA_IMPORTE_MES6		+VENTA_IMPORTE_MES6;
            TEMP_VENTA_IMPORTE_MES7 = TEMP_VENTA_IMPORTE_MES7		+VENTA_IMPORTE_MES7;
            TEMP_VENTA_IMPORTE_MES8 = TEMP_VENTA_IMPORTE_MES8		+VENTA_IMPORTE_MES8;
            TEMP_VENTA_IMPORTE_MES9 = TEMP_VENTA_IMPORTE_MES9		+VENTA_IMPORTE_MES9;
            TEMP_VENTA_IMPORTE_MES10 = TEMP_VENTA_IMPORTE_MES10		+VENTA_IMPORTE_MES10;
            TEMP_VENTA_IMPORTE_MES11 = TEMP_VENTA_IMPORTE_MES11		+VENTA_IMPORTE_MES11;
            TEMP_VENTA_IMPORTE_MES12 = TEMP_VENTA_IMPORTE_MES12		+VENTA_IMPORTE_MES12;
            TEMP_VENTA_TOTAL		   = TEMP_VENTA_TOTAL		    +VENTA_TOTAL;
			SUSPEND;
      END
       ORGANIZACION_LEIDO  =  :ORGANIZACION_LEIDO;
       CLIENTE_ID		   =  null;
       ELEM_ID			   =  null;
       NOMBRE			   =  null;
       VENTA_IMPORTE_MES1  =  TEMP_VENTA_IMPORTE_MES1;
       VENTA_IMPORTE_MES2  =  TEMP_VENTA_IMPORTE_MES2;
       VENTA_IMPORTE_MES3  =  TEMP_VENTA_IMPORTE_MES3;
       VENTA_IMPORTE_MES4  =  TEMP_VENTA_IMPORTE_MES4;
       VENTA_IMPORTE_MES5  =  TEMP_VENTA_IMPORTE_MES5;
       VENTA_IMPORTE_MES6  =  TEMP_VENTA_IMPORTE_MES6;
       VENTA_IMPORTE_MES7  =  TEMP_VENTA_IMPORTE_MES7;
       VENTA_IMPORTE_MES8  =  TEMP_VENTA_IMPORTE_MES8;
       VENTA_IMPORTE_MES9  =  TEMP_VENTA_IMPORTE_MES9;
       VENTA_IMPORTE_MES10 =  TEMP_VENTA_IMPORTE_MES10;
       VENTA_IMPORTE_MES11 =  TEMP_VENTA_IMPORTE_MES11;
       VENTA_IMPORTE_MES12 =  TEMP_VENTA_IMPORTE_MES12;
       VENTA_TOTAL		   =  TEMP_VENTA_TOTAL;
       SUSPEND;
END;
espero su apoyo, me jefe ya me ha presionado mucho
Responder Con Cita