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

IF SQL server 2000

Estas en el tema de IF SQL server 2000 en el foro de SQL Server en Foros del Web. Hola a todos, soy nuevo en el foro, pero lo he seguido ya desde hace un tiempo. Espero puedan ayudarme un poco con la implementación ...
  #1 (permalink)  
Antiguo 02/02/2011, 07:56
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 0
IF SQL server 2000

Hola a todos, soy nuevo en el foro, pero lo he seguido ya desde hace un tiempo.

Espero puedan ayudarme un poco con la implementación del IF en SQL server 2000.

Resulta que lo que quiero hacer es lo siguiente.

1- crear una columna , llamemosla 'tiempo'.

2- cuando expresión sea > < o = a un valor X
EJ. (segundos_1 + segundos_2) > 8, que en la columna tiempo se lea 'condición_1'

lo que no logro hacer bien es escribir toda la sentencia del IF.

IF( expression > 0 AND expression <= 30 ) column1 ='caso_1'
ELSE IF(expression > 30 AND expression <= 45) clumn1 = 'caso_2'

End IF
Espero se entienda, sugerencias y/o ayudas son aceptadas.
Muchas gracias
  #2 (permalink)  
Antiguo 02/02/2011, 07:59
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: IF SQL server 2000

Creo que esto te ayudara bastante:
Código SQL:
Ver original
  1. CASE WHEN expression > 0 AND expression <= 30 THEN column1 ='caso_1'
  2. ELSE CASE WHEN expression > 30 AND expression <= 45 THEN clumn1 = 'caso_2' END
  3. END
Suerte!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 02/02/2011, 08:16
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: IF SQL server 2000

Muchas gracias por la pronta respuesta.

Aparentemente tengo un problema con el case, o al menos ese es el error que lanza sql.
Esto es lo que tengo
Código SQL:
Ver original
  1. SELECT top 4833 CONVERT(VARCHAR(20),fec,120) AS movimiento, (CONVERT(VARCHAR(20),fec_mvto,120)- CAST(getdate() AS datetime)) AS Diff
  2.  
  3. CASE  WHEN (CONVERT(VARCHAR(20),fec_mvto,120)< CAST(getdate() AS datetime))> 0
  4. AND (CONVERT(VARCHAR(20),fec_mvto,120)< CAST(getdate() AS datetime))<= 30 THEN antiguedad ='30 dias'
  5. ELSE CASE  WHEN (CONVERT(VARCHAR(20),fec_mvto,120)< CAST(getdate() AS datetime))> 30
  6. AND (CONVERT(VARCHAR(20),fec_mvto,120)< CAST(getdate() AS datetime))<= 60 THEN antiguedad ='60 dias'
  7. ELSE CASE  WHEN (CONVERT(VARCHAR(20),fec_mvto,120)< CAST(getdate() AS datetime))> 60
  8. AND (CONVERT(VARCHAR(20),fec_mvto,120)< CAST(getdate() AS datetime))<= 90 THEN antiguedad ='90 o mas dias'
  9. END
  10. END
  11. END
  12. FROM XXX.dbo.XXXXX
  #4 (permalink)  
Antiguo 02/02/2011, 08:19
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: IF SQL server 2000

Parece que solo te falta una coma despues de Diff.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 02/02/2011, 08:36
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: IF SQL server 2000

Hmmm, lanza error cerca de '='
y si analizo solo la estructura case para verificar la sintaxis dice que hay error cerca de 'case'

Alguna idea?
  #6 (permalink)  
Antiguo 02/02/2011, 08:59
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: IF SQL server 2000

Claro, quita donde diga antiguedad =
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #7 (permalink)  
Antiguo 02/02/2011, 10:06
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: IF SQL server 2000

Muchas gracias Flavio, asunto resuelto.

Etiquetas: server, sql
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 10:57.