Una linea de un case devuelve dos columnas cuando solo deberia devolver una
Publicado por Diego (2 intervenciones) el 20/04/2011 10:26:59
Hola a todos, vereis tengo una consulta en la que hago un case, si un select devuelve alguna linea (exists) entonces devuelve un valor, y si no devuelve un valor que es una operación, el sql es este:
select
case
when (exists (select * from .... WHERE ....)
then VLBRTTOTOPE
else
VLBRTTOTOPE * (1 - VLPCTRISBON/100)
end SUMA
from
TABLA
where
//clausulas del where;
el caso es que la linea del else VLBRTTOTOPE * (1 - VLPCTRISBON/100) debería devolver el valor de realizar esa operacion, pero devuelve dos rows, el de VLBRTTOTOPE sin hacer la operación y el de la operación.
Alguna idea? es para el curro y no conseguimos ver porque ocurre esto!
Muchas gracias!
select
case
when (exists (select * from .... WHERE ....)
then VLBRTTOTOPE
else
VLBRTTOTOPE * (1 - VLPCTRISBON/100)
end SUMA
from
TABLA
where
//clausulas del where;
el caso es que la linea del else VLBRTTOTOPE * (1 - VLPCTRISBON/100) debería devolver el valor de realizar esa operacion, pero devuelve dos rows, el de VLBRTTOTOPE sin hacer la operación y el de la operación.
Alguna idea? es para el curro y no conseguimos ver porque ocurre esto!
Muchas gracias!
Valora esta pregunta
0