Oracle - Realizar consulta SQL

 
Vista:
sin imagen de perfil

Realizar consulta SQL

Publicado por Ruben (5 intervenciones) el 08/04/2014 18:58:51
ID | Cod | numero
M1 | 1 | 13
M1 | 3 | 9
M1 | 1 | 33
M1 | 4 | 9
M1 | 3 | 89
M1 | 3 | 11
M2 | 1 | 10
M2 | 2 | 50
M2 | 3 | 25
M2 | 3 | 11
M3 | 1 | 10
M3 | 3 | 13

En esta tabla necesito obtener otra tabla, intente hacerlo pero no logro sacar la tabla que necesito, ayudenme porfa. La consulta deberia ser:

* SI se tiene mas de una pareja de 1 y 3. Se debe restar cada 3 con su 1 inmediata inferior
* Para casos que exista solo un código 1 y varios 3, se restará el 3 más cercano al 1 existente.
*Si entre una pareja que vayamos a calcular 1 y 3, se encuenttre un numero mayor o igual al 3 entonces no hacer la resta y no considerar ese numero 3
* Los anteriores puntos se calculan sobre la columna Cod, la resta que se menciona se refiere a los valores de la columna Valor
* Esto deberia devolver una tabla de la forma:

ID | Cod | numero
M1 | 1 | 13 -> se debe restar
M1 | 3 | 9
M1 | 1 | 33
M1 | 4 | 9 -> se deberia restar el 3 y 1 (89-33) pero no se hara porq hay un numero 4 entre ellos
M1 | 3 | 89
M1 | 3 | 11 -> este ya no tiene pareja

M2 | 1 | 10
M2 | 2 | 50 -> si procede la resta y ae ignora el 2
M2 | 3 | 25
M2 | 3 | 11 -> no tiene pareja

M3 | 1 | 10
M3 | 3 | 13 -> se resta


bajo las condiciones arriba puesta deberia quedar

ID | diferencia
M1 | 9-13
M2 | 25-10
M3 | 13-10

alguien podria apoyarme con esta consulta mucha 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

Realizar consulta SQL

Publicado por luis pablo (235 intervenciones) el 08/04/2014 23:23:54
Cuánto pagas para que te hagan el trabajo?

Cuánto ofreces?

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

Realizar consulta SQL

Publicado por luis pablo (235 intervenciones) el 08/04/2014 23:28:06
En tu intervención anterior se te asesoró con lo mismo, creo que ahora te toca poner algo de tu parte, no crees?
O quieres que te resuelvan todo el trabajo?

Investiga un poco, aprende, claro si te interesa.

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

Realizar consulta SQL

Publicado por Ruben (5 intervenciones) el 14/04/2014 12:52:31
Hola, segui tu consejo y estuve resolviendo el problema pero me veo en un situación que no pude resolver.

Hize este problema con cursores y me veo en la necesidad de mostrar la respuesta en una tabla como cuando haces una consulta select count(*) from (tabla) y te aparece una sola columna y un solo registro

Actualmente solo me aparece el resultado (un numero) usando el DBMS_OUTPUT, pero necesito mostrarlo en una tabla como mencione antes, o sea un solo registro y un solo campo.

Como podria hacer?

slds.
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
Imágen de perfil de Isaac Daniel

Realizar consulta SQL

Publicado por Isaac Daniel (1 intervención) el 15/04/2014 23:46:25
Para que te salgan los demas resultador usa un for.

ejem:

for xx in CURSOR LOOP
/*
Tus variables a presentar en la pantalla
con un dbms_output
*/
END LOOP;
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