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

UPDATE con DATEDIFF Diferentes tablas.

Estas en el tema de UPDATE con DATEDIFF Diferentes tablas. en el foro de SQL Server en Foros del Web. Hola a todos. Soy nuevo en el foro. Aunque siempre lo uso esta es la primera vez que no encuentro algo aqui y es por ...
  #1 (permalink)  
Antiguo 10/09/2013, 11:21
 
Fecha de Ingreso: septiembre-2013
Mensajes: 5
Antigüedad: 10 años, 7 meses
Puntos: 0
UPDATE con DATEDIFF Diferentes tablas.

Hola a todos. Soy nuevo en el foro. Aunque siempre lo uso esta es la primera vez que no encuentro algo aqui y es por eso que escribo este mensaje para poder resolver un pequeño problema que tengo.

Como el titulo lo dice quiero guardar el valor de la funcion datediff en una columna.

Mi script es :

Código SQL:
Ver original
  1. UPDATE Asistencia SET  Asistencia.Tiempo_Tardanza=DATEDIFF(MINUTE,CONVERT(VARCHAR,  Horario.Ingreso(),108) ,CONVERT(VARCHAR,Asistencia.marcaringreso(),108) )
  2. FROM        Horario  INNER JOIN
  3.             Usuario ON Horario.Tipo_Horario = Usuario.Tipo_Horario INNER JOIN
  4.             Asistencia ON Usuario.Usuario = Asistencia.Usuario
  5. WHERE       Asistencia.usuario='ROMILY.NIETO'  AND (CONVERT(VARCHAR(8), Asistencia.FechaRegistro, 112) = CONVERT(VARCHAR(8), getdate(),112))

y el error es el siguiente:

Mens. 4121, Nivel 16, Estado 1, Línea 1
No se encuentra la columna "Horario" o la función definida por el usuario o agregado "Horario.Ingreso"; o bien, el nombre es ambiguo.

---------------------------------------------------------------------------------------------------

Son 3 tablas como veran : Horario, Asistencia y Usuario. y al parecer SQL reconoce a Horario.Ingreso como a una columna.


"No hay mejor profesor que el error ni mas dulzura del que sufre y luego cura su dolor"

Última edición por gnzsoloyo; 10/09/2013 a las 11:28
  #2 (permalink)  
Antiguo 10/09/2013, 11:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: UPDATE con DATEDIFF Diferentes tablas.

Cita:
Horario.Ingreso()
¿Es una función o un campo de la tabla?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/09/2013, 11:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: UPDATE con DATEDIFF Diferentes tablas.

Código SQL:
Ver original
  1. UPDATE Asistencia SET Asistencia.Tiempo_Tardanza=DATEDIFF(MINUTE,CONVERT (VARCHAR(20), Horario.Ingreso,108) ,CONVERT(VARCHAR(20),Asistencia.marcaringreso,108) )
  2. FROM Horario INNER JOIN
  3. Usuario ON Horario.Tipo_Horario = Usuario.Tipo_Horario INNER JOIN
  4. Asistencia ON Usuario.Usuario = Asistencia.Usuario
  5. WHERE Asistencia.usuario='ROMILY.NIETO' AND (CONVERT(VARCHAR(8), Asistencia.FechaRegistro, 112) = CONVERT(VARCHAR(8), getdate(),112))

pregunta porque pones Asistencia.marcaringreso() de esta manera??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 10/09/2013, 12:06
 
Fecha de Ingreso: septiembre-2013
Mensajes: 5
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: UPDATE con DATEDIFF Diferentes tablas.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Es una función o un campo de la tabla?
Es el campo de una tabla.
  #5 (permalink)  
Antiguo 10/09/2013, 12:11
 
Fecha de Ingreso: septiembre-2013
Mensajes: 5
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: UPDATE con DATEDIFF Diferentes tablas.

Cita:
Iniciado por Libras Ver Mensaje
Código SQL:
Ver original
  1. UPDATE Asistencia SET Asistencia.Tiempo_Tardanza=DATEDIFF(MINUTE,CONVERT (VARCHAR(20), Horario.Ingreso,108) ,CONVERT(VARCHAR(20),Asistencia.marcaringreso,108) )
  2. FROM Horario INNER JOIN
  3. Usuario ON Horario.Tipo_Horario = Usuario.Tipo_Horario INNER JOIN
  4. Asistencia ON Usuario.Usuario = Asistencia.Usuario
  5. WHERE Asistencia.usuario='ROMILY.NIETO' AND (CONVERT(VARCHAR(8), Asistencia.FechaRegistro, 112) = CONVERT(VARCHAR(8), getdate(),112))

pregunta porque pones Asistencia.marcaringreso() de esta manera??
Gracias por tu observacion. No se por que el SQL server lo agrego como funcion. Ahora todo esta OK. Bueno como dato es que estoy haciendo un sistema de asistencia y la verdad se me han ocurrido muchas cosas y estoy tratando de adaptarlas de manera sencilla.

Etiquetas: datediff, fecha, registro, sql, tabla, update, valor
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 14:58.