Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Duda de update con case when y select anidado

Estas en el tema de Duda de update con case when y select anidado en el foro de SQL Server en Foros del Web. Hola, Espero me pudieran ayudar con este problema en mi código. Estoy realizando un update con case when anidado y un select anidado en éste, ...
  #1 (permalink)  
Antiguo 06/07/2011, 09:53
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Exclamación Duda de update con case when y select anidado

Hola,

Espero me pudieran ayudar con este problema en mi código.

Estoy realizando un update con case when anidado y un select anidado en éste, pero me marca error.

¿Cómo puedo resolver este problema?

Gracias de antemano.


Update dbo.CrediAxisOrd Set ColPrimerPag =
Case When convert(varchar, [AuxPrimerPagoCOLAUX], 103) > '15/11/2010' Then
convert(varchar,0,103)
Else
(Select convert(varchar, cast(1 as varchar)+'/'+cast(MONTH(convert(smalldatetime,[AuxPrimerPagoCOLAUX],103)) as varchar)+'/'+cast(YEAR(convert(smalldatetime,[AuxPrimerPagoCOLAUX],103)) as varchar), 103)
from dbo.CrediAxisOrd
where
convert(varchar, cast(1 as varchar) +'/'+cast(MONTH(convert(smalldatetime,[AuxPrimerPagoCOLAUX],103)) as varchar)+'/'+cast(YEAR(convert(smalldatetime,[AuxPrimerPagoCOLAUX],103)) as varchar), 103)
in
('1/1/2010', '1/2/2010', '1/3/2010', '1/4/2010', '1/5/2010', '1/6/2010', '1/7/2010', '1/8/2010', '1/9/2010', '1/10/2010', '1/11/2010', '1/12/2010',
'1/1/2011', '1/2/2011', '1/3/2011', '1/4/2011', '1/5/2011', '1/6/2011', '1/7/2011', '1/8/2011', '1/9/2011', '1/10/2011', '1/11/2011', '1/12/2011',
'1/1/2012', '1/2/2012', '1/3/2012', '1/4/2012', '1/5/2012', '1/6/2012', '1/7/2012', '1/8/2012', '1/9/2012', '1/10/2012', '1/11/2012', '1/12/2012'))
End
  #2 (permalink)  
Antiguo 06/07/2011, 10:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Duda de update con case when y select anidado

Lo tendrias que hacer asi:


update table
set valor=t1valornuevo
from
(
select case
when condicion1 else condicion 2 end as valornuevo from tabla
) as t1


saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: case, select, update, anidados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:04.