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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Eduardo De Luca
08/06/2005 - 19:20 | Informe spam
Alejandro , perdon va la correcion:

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
e1_cuentas.cta_fec_vto FROM e1_cuentas WHERE
e1_cuentas .cta_id = alt_aut.ctc_id

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


end

fijate que si bien es la misma comparacion , la funcion recibe distintos
parametros
GRacias



"Alejandro Mesa" escribió en el
mensaje news:
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



Respuesta Responder a este mensaje
#3 Alejandro Mesa
08/06/2005 - 19:36 | Informe spam
Eduardo,

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



Las sigo viendo iguales. La expression case no evaluara la segunda "when".


AMB

"Eduardo De Luca" wrote:

Alejandro , perdon va la correcion:

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
e1_cuentas.cta_fec_vto FROM e1_cuentas WHERE
e1_cuentas .cta_id = alt_aut.ctc_id

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


end

fijate que si bien es la misma comparacion , la funcion recibe distintos
parametros
GRacias



"Alejandro Mesa" escribió en el
mensaje news:
> 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
>>
>>
>>



Respuesta Responder a este mensaje
#4 Liliana Sorrentino
08/06/2005 - 19:50 | Informe spam
Eduardo,
Además del comentario de Alejandro sobre los dos primeros WHEN, hay un error
de sintaxis que puede modificarse de dos maneras:
1, combinando las dos tablas:

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
e1_cuentas.cta_fec_vto
when dbo.e1_f_pasar_a_pesos(v_desvio_anterior,
v_cta_mon) <= 20 then
getdate()
end
end
from e1_cuentas
where e1_cuentas .cta_id = alt_aut.ctc_id

2, con una subconsulta:
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
(select e1_cuentas.cta_fec_vto from e1_cuentas
where e1_cuentas .cta_id = alt_aut.ctc_id)
when dbo.e1_f_pasar_a_pesos(v_desvio_anterior,
v_cta_mon) <= 20 then
getdate()
end
end


"Eduardo De Luca" escribió en el mensaje
news:##
Alejandro , perdon va la correcion:

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
e1_cuentas.cta_fec_vto FROM e1_cuentas WHERE
e1_cuentas .cta_id = alt_aut.ctc_id

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


end

fijate que si bien es la misma comparacion , la funcion recibe distintos
parametros
GRacias



"Alejandro Mesa" escribió en el
mensaje news:
> 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
>>
>>
>>


Respuesta Responder a este mensaje
#5 Eduardo De Luca
08/06/2005 - 20:01 | Informe spam
tenes razon perdomame , copie el mismo

ahora si, va la correccion:

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_fec_vto.cta_id
= al_aut .ctc_id

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


end


"Alejandro Mesa" escribió en el
mensaje news:
Eduardo,

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



Las sigo viendo iguales. La expression case no evaluara la segunda "when".


AMB

"Eduardo De Luca" wrote:

Alejandro , perdon va la correcion:

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
e1_cuentas.cta_fec_vto FROM e1_cuentas WHERE
e1_cuentas .cta_id = alt_aut.ctc_id

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


end

fijate que si bien es la misma comparacion , la funcion recibe distintos
parametros
GRacias



"Alejandro Mesa" escribió en el
mensaje news:
> 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
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida