Oracle - Incluir dos campos calculados con condicion

 
Vista:

Incluir dos campos calculados con condicion

Publicado por Dani (2 intervenciones) el 28/04/2015 21:00:08
Hola!
Soy algo novato y me gustaría saber como puedo hacer lo siguiente. Tengo dos consultas sobre una misma tabla, en realidad es un cruce de varias tablas pero por simplicidad lo dejo asi:

1
2
3
4
5
6
7
SELECT codigo, sum(importanual) as sumaTotal
FROM importesp
WHERE codigo IN
(
['valores'],...
)
GROUP BY codigo
y el resultado es algo tal que asi:

codigo sumaTotal

La cuestión es que necesito añadir una tercera columna utilizando la función SUM sobre el mismo campo (importanual) pero necesito añadirle una condicion, y es una clausula where para que me calcule la suma solo desde una fecha determinada. La clausula where es sencilla, simplemente que el campo fecha de la fila sea mayor a una determinada.

El caso es que necesito por un lado, mantener la suma total y por el otro, ejecutar la suma solo desde la fecha determinada.
Ahora saco dos consultas y lo pego, pero me gustaría tenerlo solo en una query.

Un saludo y 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
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Incluir dos campos calculados con condicion

Publicado por Rafael (328 intervenciones) el 29/04/2015 08:33:15
Puedes probar con algo asi y contarnos que tal te ha ido :

1
2
3
4
5
6
7
8
SELECT codigo
     , sum(importanual) as sumaTotal
     , sum(case where fecha>valor_fecha then importanual else 0 end) as sumaParcial
FROM importesp
WHERE codigo IN
(['valores'],...
)
GROUP BY codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Incluir dos campos calculados con condicion

Publicado por Dani (2 intervenciones) el 29/04/2015 08:58:52
Hola Rafael,
efectivamente con el CASE lo he podido solucionar. No sabia que podia usar CASE dentro de las funciones de grupo. Has puesto un where pero entiendo que debia ser WHEN, pero muchisimas gracias!.

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
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Incluir dos campos calculados con condicion

Publicado por Rafael (328 intervenciones) el 29/04/2015 15:11:04
Si vaya me he equivocado lo bueno es que te ha funcionado y lo has sabido corregir...

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