Oracle - obtener rangos o intervalos de numeros de facturas en oracle

 
Vista:

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por dinora miranda (5 intervenciones) el 25/10/2013 23:42:00
Buenas tardes!!!
Quisiera que me puedan ayudar en obtener rangos de numeros de facturas y a partir de ese rango hacer una suma total, por ejemplo
rangos total rango de facturas
013400-013410 944.78

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por luis pablo (235 intervenciones) el 28/10/2013 02:18:32
Hola Dinora, puedes ser mas detallista en tu consulta?
De donde quieres obtener rango de facturas de una tabla??
Quieres hacer un select a una tabla?? o donde??

Que es lo que quieres sumar???

En tu ejemplo :

rangos total rango de facturas
013400-013410 944.78


Rangos?? del "013400 al 013410" que deseas hacer con esto??

El numero 944.78 que es?? es la cantidad de rango de facturas en una tabla o que?? no comprendo???


Favor de detallar tu consulta para orientarte.

Saludos

Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por dinora (5 intervenciones) el 28/10/2013 04:13:27
Hola Luis!! Disculpame por no ser tan detallista, pues pense que nadie me iba a tomar en cuenta en estas cosas, pues sinceramente es la primera vez que hago esto en mi vida de publicar algo para que me puedan ayudar. Mi duda es la siguiente, en mi trabajo me han solicitado un reporte de libro de ventas tanto de facturas como creditos fiscales, ahorita estoy en el de facturas pues el de credits fiscales es mucho mas sencillo y pues el pequeño detalle con respecto al reporte de facturas es, que en el reporte se requiere que se un formato como elsiguiente:

Mes: octubre 2013

DIA TIENDA DEL No. AL No. EXENTA IVA TOTAL
01 01-CENTRO 013400 013409 944.78

Este reporte de libro de ventas facturas normalmente lo generan diario para ver lo q ha vendido cada sucursal. Haciendo el reporte en ireport ya genere 3 tipos de grupos, primero por la fecha de las facturas, luego la tienda y luego los codigos o numeros de facturas.
El ultimo grupo que genero es con respecto a los numeros de facturas, el usuario me ha pedido que haga rangos de numeros de facturas de diez en diez, a partir de ese rango de facturas se hace un sum de los totales de facturas, de iva y de exentas.

En el ejemplo que puse, se refleja que en el rango de numeros de facturas hay diez facturas, a esas diez facturas se debe sumar sus totales, al igual sus totales de iva y de ventas exentas y despues obtener otro rangos de numeros de facturas y hacer lo mismo. En general, debo generar rangos de facturas a partir de un total de facturas,digamos si hay 20 facturas por tienda, tendria que haber dos rangos empezando del numero minimo de facturas mas 9 facturas para obtener el primer rango y el segundo rango de facturas se generaria a partir d este ultimo numero + nueve facturas adicionales.
Para mi esto es algo dificil ya que nunca he hecho eso, pues solo he logrado obtener un solo total de todas las facturas que tengo y poner el min y max de numero de factura.

Espero me puedan ayudar....gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por Richie Valbuena (16 intervenciones) el 28/10/2013 13:40:23
Hola Dinora, puedes trabajar esos rangos con la propiedad del grupo repetitivo donde lo puedes limitar a que muestre solo 10 registro y listo!!! Un ejemplo si tienes 25 facturas con esta condición el mostrara solo 10 en una hoja, 10 en otra y luego las 5 en la ultima... creo que esto es lo que buscas a tu problema... me dices si pudiste resolver!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por dinora (5 intervenciones) el 28/10/2013 15:52:29
ESTE ES LA CONSULTA QUE TENGO POR AHORITA:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT A.FECHA,A.TIENDA,
(CASE
    WHEN A.TIPODOC='01' THEN SUM(A.TOTAL_FACTURA)
    WHEN A.TIPODOC='39' THEN SUM(A.TOTAL_FACTURA)
END) AS TOTAL_FACTURA,
(CASE
    WHEN A.TIPODOC='01' THEN SUM(A.TOTAL_EXENTAS)
    WHEN A.TIPODOC='39' THEN SUM(A.TOTAL_EXENTAS)
END) AS TOTAL_EXENTAS
FROM FACTURAS A
INNER JOIN TIENDAS C ON A.TIENDA = C.TIENDA
WHERE A.FECHA= TO_DATE('20110121','YYYYMMDD')
AND A.TIPODOC IN('01','39')
GROUP BY A.FECHA,A.TIENDA,A.TIPODOC
ORDER BY A.TIENDA

Y BUENO NO COMPRENDO RICHIE CUANDO DICES "propiedad del grupo repetitivo", PUES EXPLICARME MEJOR CON LAS INSTRUCCIONES
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por luis pablo (235 intervenciones) el 28/10/2013 16:43:21
Hola, creo que richie piensa que el reporte lo elaboras con el el report builder.

El reporte lo creas con el iReport, cierto??

Saludos

Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por Richie Valbuena (16 intervenciones) el 28/10/2013 16:46:05
Cierto luis!!! Tonces no aplica... Disculpa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por luis pablo (235 intervenciones) el 28/10/2013 17:08:43
Dinora,

en caso de este tipo de reporte donde el usuario quiere que muestres datos agrupados ..
Puedes crear una tabla temporal oracle ( "CREATE GLOBAL TEMPORARY TABLE ....") con la estructura del tu detalle de reporte donde se muestran los datos agrupados como deseas.
tendrias que crear un procedimiento de BD donde le pases los parametros necesarios para que realices el cursor con los datos para poblar tu tabla temporal. La cantidad de registros a agrupar seria un parámetro que supongo tienes una tabla de parametros el cual tendria el valor de 9 (ya que se agruparia cada 9 facturas como mencionas) y se calcularia la sumatoria cada 9 registros... luego el usuario te pedirá que lop agrupes cada 21, ...luego 30 ,,etc...

Ejemplo:

Create or replace procedurde XXXX (p_anio aaa , p_mes bbb p_tienda ccc ) is

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
cursor c_facturas is
 select  *  FROM FACTURAS
where anio= p_anio
and mes= p_mes
and tienda = p_tienda
 
 nDocAgrup number;
 
  nContador number:=0;
Begin
 
 
  select into  valor into  nDocAgrup
  from  parametro
  where  codigo= 'CANDOCAGRU';
 
 
  for  x  in c_facturas loop
    nContador:=nContador +1;
 
    IF  nDocAgrup = nContador then
     /*
      Si el numero de documentos recorridos es igual al nuimero de documentos a agrupar realizas  el insert y los importes calculados... 
       Cada 10 registros se crearan los registros requeridos en la tabla temporal... 
     */
 
      insert into tabla_temporal ...
 
     nContador:=0;
 
    End if;
 
 
 end loop;
 
 commit;
 
End;



Cada vez que ejecutes el reporte debes eliminar los registros de la tabla temporal para volverlos a cargar de acuerdo como crees la tabla temporal

Luego que crees los registros en la tabla temporal, puedes ejecutar tu sentencia select y listo se mostraran los datos como quieres... agrupado o como lo desees,,, No te olvides de definir la estrucura de tu tabla temporal de manera que te permita hacer la agrupacion de ultimo nivel que tu reporte lo requiere ...

El ejemplo, es solo una idea...que te puede orientar a lo que se quiere lograr...

Espero que te haya orientado...
Cualquier consulta me la haces..

Saludos

Luis Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por dinora (5 intervenciones) el 28/10/2013 18:18:34
Muy amable de su parte luis pablo, tratare de hacerlo en base a su orientacion...espero no se me complique =(. ..pero igual si tengo dudas siempre puedo escribirle verdad o a alguien mas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por luis pablo (235 intervenciones) el 28/10/2013 18:26:15
Claro, normal consulte con toda confianza....

Con la condición que también le ayude a otra persona cuando le consulte sobre estos temas.. y comparta lo aprendido ,...jejeje

Tenemos que difundir el conocimiento, mientras mas personas sepamos sobre un tema mayores investigadores habremos y así aprendemos todos.

Me comenta si tiene algún problema con su requerimiento.

Saludos

Luis Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por dinora (5 intervenciones) el 28/10/2013 18:31:43
esta bien....lo unico que estoy viendo que ud. menciona cursores, investigare algo por eso nunca lo hecho y pues procedimientos no he usado para generar reportes...todo esto es nuevo para asi q intentare haber q m resulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener rangos o intervalos de numeros de facturas en oracle

Publicado por luis pablo (235 intervenciones) el 28/10/2013 18:39:39
Ok, por ejemplo, creas un proc que te cree registros en base a un cursor ... con los parametros que formarán parte de la condicion de tu sentencia select....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Create or replace proc proc_1 ( p_codcli   cliente.codcli%type ) is
 
  cursor c_cliente is
  select  * from cliente
 where codcli= p_codcli ;
 
begin
 
   For  x in c_cliente loop
 
     insert into tmp_cliente( codcli, nombre, apellidos, ,,,,,  )
    values (x.codci, x.nombre, x.apellidos, ....) ;
 
 
  end loop;
 
  commit;
 
end;

Aqui creo un cursor para consultar datos de un cliente y registrarlos en otra tabla... me barro el cursor con el For... Loop y creo registros por cada registro recuperado en el select..

Saludos


luis pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar