case

08/06/2005 - 18:35 por Eduardo De Luca | Informe spam
Que tal . Les pido si alguno me puede ayudar .

El codigo que escribo abajo estaba dentro de un cursor , y tardaba bastante
(horas) lo elimine y este código se ejecuta en minutos . El único problema
que se me presento en donde marco con el numeral (###)

El equivalente en el cursor era





Update al_aut set v_cta_fec_vto = cta_fec_vto FROM e1_cuentas WHERE cta_id
=@variabledel cursor

..

..

despues de eliminarlo :





update al_aut set v_cta_fec_vto
case

when dbo.e1_f_pasar_a_pesos(v_desvio, v_cta_mon) > 20 then null

when dbo.e1_f_pasar_a_pesos(v_desvio,v_cta_mon) > 20 then

case

when dbo.e1_f_pasar_a_pesos(v_desvio_anterior, v_cta_mon)

20 then



### cta_fec_vto FROM e1_cuentas WHERE cta_id =
ctc_id



when dbo.e1_f_pasar_a_pesos(v_desvio_anterior, v_cta_mon)
<= 20 then

getdate()

end





end



como el asigno ese valor en el case

Gracias
 

Leer las respuestas

#1 Alejandro Mesa
08/06/2005 - 19:03 | Informe spam
Eduardo,

Pudieras reescribir la sentencia, parece que existe conflicto en el case.

update al_aut set v_cta_fec_vto>
case

when dbo.e1_f_pasar_a_pesos(v_desvio, v_cta_mon) > 20 then null

when dbo.e1_f_pasar_a_pesos(v_desvio,v_cta_mon) > 20 then



La misma comparacion en diferentes "when".

Otra cosa mas, pudieras poner el nombre de la tabla que corresponde a cada
columna?

### cta_fec_vto FROM e1_cuentas WHERE cta_id = ctc_id



sera que cta_id y ctc_id pertenecen a la misma tabla?


AMB
"Eduardo De Luca" wrote:

Que tal . Les pido si alguno me puede ayudar .

El codigo que escribo abajo estaba dentro de un cursor , y tardaba bastante
(horas) lo elimine y este código se ejecuta en minutos . El único problema
que se me presento en donde marco con el numeral (###)

El equivalente en el cursor era



.

Update al_aut set v_cta_fec_vto = cta_fec_vto FROM e1_cuentas WHERE cta_id
=@variabledel cursor

..

...

despues de eliminarlo :





update al_aut set v_cta_fec_vto>
case

when dbo.e1_f_pasar_a_pesos(v_desvio, v_cta_mon) > 20 then null

when dbo.e1_f_pasar_a_pesos(v_desvio,v_cta_mon) > 20 then

case

when dbo.e1_f_pasar_a_pesos(v_desvio_anterior, v_cta_mon)
> 20 then

### cta_fec_vto FROM e1_cuentas WHERE cta_id =
ctc_id



when dbo.e1_f_pasar_a_pesos(v_desvio_anterior, v_cta_mon)
<= 20 then

getdate()

end





end



como el asigno ese valor en el case

Gracias



Preguntas similares