Oracle - URGENTE - cálculo entre grupos en Report Builder

 
Vista:

URGENTE - cálculo entre grupos en Report Builder

Publicado por Ana (2 intervenciones) el 12/02/2007 16:37:37
Hola a todos,
Soy principiante en esto de los reports y tengo un problemilla un poco peliagudo. Como el tema es un poco lioso lo voy a simplificar con un ejemplo:
Soy una empresa que compra fruta a varios proveedores, y puedo acceder al stock que tienen de cada fruta en su almacén. Esos proveedores los tengo por orden de preferencia. Bien. Ahora quiero comprar 1000 manzanas. Hasta ahora soy capaz de sacar un informe con el stock de los proveedores.
Bueno, ahora viene lo "gordo" del asunto:
Quiero que el informe sea capaz de decirme lo que puedo coger de cada proveedor hasta completar mis 1000 manzanas, cogiendo todo lo que se pueda del primer proveedor, lo mismo del segundo, del tercero ... así hasta tener las 1000 manzanas.
El caso es que no soy capaz de hacer esto y lo necesito urgentemente. A lo mejor es que no se puede hacer. ¿Alguién me puede ayudar?
Muchísimas gracias de antemano.
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

RE:URGENTE - cálculo entre grupos en Report Builde

Publicado por mad (88 intervenciones) el 15/02/2007 17:41:08
No se muy bien si es esto lo que pides:

SELECT AVG(10) / 1000
,AVG(23) / 1000
,AVG(800) / 1000
,AVG(100) /1000
FROM dual;

se calcula la media AVG sobre lo disponible en el almacen del proveedro dividido por la cantidad que necesitamos, esto te retorna algo como esto;

0,01 0,023 0,8 0,1

con esto valores ya conoces lo que cada proveedor puede poner de su parte.

Espero te sirva.
Salu2.
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

RE:URGENTE - cálculo entre grupos en Report Builde

Publicado por Ana (2 intervenciones) el 15/02/2007 18:01:32
Muchas gracias por tu ayuda, pero me temo que me he explicado mal.
El problema es éste:

Si necesito 1000 y en cada proveedor tengo:
10, 250, 800, 100
Yo quiero que el report me devuelva lo que coger de cada uno, es decir:
10, 250, 740, 0

O sea, un rollo, porque es super difícil saber que del tercero solo tengo que coger 740 en vez de 800, y que del último 0 en vez de 100.

No sé cómo puedo hacer para tener una variable o parámetro o lo que sea, que me vaya marcando en cada momento lo que me resta por coger.

Lo estoy intentando a base de sql pero la verdad para mí es complicadísimo.

Te agradezco mucho que intentes ayudarme, pero sé que esto es muy difícil. Igual no se puede hacer.
De todas formas, gracias.
Un saludo.
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

RE:URGENTE - cálculo entre grupos en Report Builde

Publicado por mad (88 intervenciones) el 16/02/2007 11:39:08
DECLARE
V_NEC NUMBER := 1000; (cantidad que necesito)
V_TEN NUMBER := 0; (var. para ir sumando las cantidades que cojo)
IND NUMBER := 0;
CURSOR C1 IS
--------------------------------------------------------------
---- Cursor para recuperar los proveedores y sus cantidades
SELECT *
FROM PROVEEDORES; ---- nombre de tu tabla

---------- tabla indexada para ir metiendo las cantidades que cojes de cada proveedor
TYPE PROV IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;

V_PROV PROV;
BEGIN

-------------lectura del cursor
FOR X IN C1 LOOP

EXIT WHEN V_TEN = V_NEC; -- Si ya tengo los que necesito me salgo

V_PROV(IND) := X.CAMPO; ---Meto en la tabla indexada al proveedor que he cojido cantidad
V_TEN := V_TEN + X.CAMPO; --sumo la cantidad a una variable hasta que tenga lo que necesito.
IND := IND + 1;
END IF;

END LOOP;

END;

Es sencillo, lo que no se es si me he explicado bien, si quieres me mandas tu mail y te mando una demo mas expicada

Saludos
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