Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-07-2016
itsspxndx itsspxndx is offline
Registrado
NULL
 
Registrado: jul 2016
Posts: 6
Poder: 0
itsspxndx Va por buen camino
Subtotal en consulta

alguien podria apoyarme, como obtego un subtotal dentro de un procedimiento almacenado en firebird.
como puedo sumar subtotales dependiendo de la categoria?

ejemplo de lo que requiero:
EMPRESA-AREA-DPTO-MONTO
01--------01---01----100
01--------01---02----200

CATEGORIA 01--------300

01--------02---03----200
01--------02---04----200

CATEGORIA 02--------400

TOTAL GENERAL--------700
Responder Con Cita
  #2  
Antiguo 11-07-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola itsspxndx.

Por favor reformula la consulta con mas detalle por que sinceramente no está claro que es lo que buscas obtener ni de que tabla o tablas debe extraerse.

Por ejemplo: CATEGORIA pareciera ser una columna, pero no figura en la primera parte del ejemplo.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 11-07-2016
itsspxndx itsspxndx is offline
Registrado
NULL
 
Registrado: jul 2016
Posts: 6
Poder: 0
itsspxndx Va por buen camino
Unhappy

Por su puesto ecfisa, lo que quiero obtener es esto:

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

y con la consulta que tengo solo he logrado obtener esto:

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

en si, lo que requiero es que la consulta me lo totalice por Organizacion, que me cree un subtotal por cada organizacion, en sql server lo he realizado sin problemas, pero con este lenguaje se me ha hecho mas complicado.

este es my SQL ahora:

Código SQL [-]
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

   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  =  'TOTAL';
       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;

Como veras mando a llamar productos vendidos por cada organizacion previamente ya calculados, solo requiero calcular un agrupado por Organizacion, esta consulta la tome de otro post.

ecfisa espero tu ayuda, y espero no darte mucho trabajo, pero me sacarias de un gran apuro con esto
Responder Con Cita
  #4  
Antiguo 11-07-2016
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
De forma facil y poco cuidadosa (sin pensar en el performance) se me ocurre que hagas un subquery con la agrupacion el calculo y lo mandes al final con un campo total por grupo.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Subtotal en ReportBuilder javier7ar Impresión 3 28-07-2011 23:54:58
Subtotal en consultas y reportes othaheguy Conexión con bases de datos 10 13-04-2010 23:32:03
Ayuda con subtotal de excel desde delphi! jjha79 Servers 1 14-12-2009 22:33:18
DBGrib con subtotal y grupo... User_baja1 Varios 1 11-03-2005 13:03:31
SubTotal Maestro Detalle FernanGil Impresión 3 29-09-2003 19:20:47


La franja horaria es GMT +2. Ahora son las 13:10:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi