PDA

Ver la Versión Completa : Subconsultas en ORACLE


Investment
04-06-2003, 11:40:08
Estoy intentando hacer una subconsulta dentro del TOAD


SELECT unidad,
(Select count(*) from unidades U
where U.obra=6012 and U.Unidad=UU.Unidad) as TOTAL
FROM unidades UU
WHERE UU.obra=6012



pero al ejecutar la consulta me dice que falta una expresion.

El formato funciona correctamente en SQL SERVER pero no se que es lo que me falta en ORACLE.

delphi.com.ar
04-06-2003, 17:31:34
Te cuento que en mi empresa tenemos instalado dos versiones diferentes del motor, una para desarrollo y otra para producción.
Me ha pasado mas de una ves, que algo que funciona en desarrollo no funciona en producción, el tema es que la de desarrollo es 8.1.5 y la de producción es 8.0.5, bueno, todo lo que te estoy contando es porque ese tipo de consulta no funciona en 8.0.5 pero si en 8.1.5 y el error que produce es "missing expression"

Saludos!

Investment
04-06-2003, 17:49:25
Gracias por tu respuesta delphi.com.ar

En mi empresa tanto en desarrollo como en produccion tenemos la version 8.0.5. y efectivamente no funciona

Al final lo he solucionado incorporando la select al FROM


SELECT U2.unidad, U1.cont

FROM unidades U2,
( Select COUNT(Unidad) "CONT"
FROM unidades
WHERE Validado = 1) U1

WHERE U2.obra = 6012

marto
19-06-2003, 00:41:36
Esto no responde a tu pregunta, es más por mi curiosidad.
O no he entendido lo que quieres hacer con la query o ¿no te devolvería lo mismo esta?


SELECT U.unidad, count(*)
FROM unidades U
WHERE U.Obra = 6012
group by U.Unidad


No tienes que hacer niguna join, cosa que te ahorrá tiempo. Además, lo que tu haces es una subselect sincronizada, cosa costosiiiiiiiiiiiiiiiiisima.

Si me he empanao y no he entendido tu intención, comentamelo, por favor.

delphi.com.ar
19-06-2003, 00:50:04
Es verdad, tu consulta tiene el mismo resultado y es mucho mas eficaz que la primer consulta, pero me parece que la segunda consulta da otro resultado. A la hora de responder me he segado por la duda particular que me han planteado y ni se me ocurrió ver que las dos tablas eran las mismas.

Saludos!