Ultimo Registro

01/09/2003 - 21:24 por jiordie | Informe spam
Buenas tardes!!, me disculpan, pero es que soy muy novato
en SQL, Tengo una tabla que es creada a partir de una
consulta, y en ella el registro Terminacion, que es una
fecha y hora, en cada registro en un campo tiempo debo
consignar el tiempo transcurrido entre la fecha de
terminacion del ultimo registro y la fecha de terminación
del registro activo, es decir algo así
REGISTRO FECHAEMPIEZA FECHA TERMINACION TIEMPO
1 01/09/03 06:00 01/09/03 07:00 1HORA
1 01/09/03 06:00 01/09/03 09:00 2HORAS
1 01/09/03 06:00 01/09/03 12:00 3HORAS
2 01/09/03 06:00 01/09/03 07:00 1HORA
2 01/09/03 06:00 01/09/03 09:00 2HORAS
2 01/09/03 06:00 01/09/03 12:00 3HORAS

El primer registro es fácil porque se resta con fecha
empieza, pero en adelante debo tomar de la ultima
terminación, porque la hora de inicio siempre va a ser la
misma por cada registro, e igualmente debo reiniciar esto
cada vez que cambia el número de registro.

Espero haberme explicado bien, Y QUE OJALA ME PUEDAN
AYUDAR!!!!

SUERTE!!

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
02/09/2003 - 08:14 | Informe spam
Por favor, envía el script de creación de la tabla con unos datos de
ejemplo para que te podamos ayudar mejor



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=....public.es
.sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/defaul.../70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"jiordie" escribió en el mensaje
news:01fd01c370be$9a3b2390$
Buenas tardes!!, me disculpan, pero es que soy muy novato
en SQL, Tengo una tabla que es creada a partir de una
consulta, y en ella el registro Terminacion, que es una
fecha y hora, en cada registro en un campo tiempo debo
consignar el tiempo transcurrido entre la fecha de
terminacion del ultimo registro y la fecha de terminación
del registro activo, es decir algo así
REGISTRO FECHAEMPIEZA FECHA TERMINACION TIEMPO
1 01/09/03 06:00 01/09/03 07:00 1HORA
1 01/09/03 06:00 01/09/03 09:00 2HORAS
1 01/09/03 06:00 01/09/03 12:00 3HORAS
2 01/09/03 06:00 01/09/03 07:00 1HORA
2 01/09/03 06:00 01/09/03 09:00 2HORAS
2 01/09/03 06:00 01/09/03 12:00 3HORAS

El primer registro es fácil porque se resta con fecha
empieza, pero en adelante debo tomar de la ultima
terminación, porque la hora de inicio siempre va a ser la
misma por cada registro, e igualmente debo reiniciar esto
cada vez que cambia el número de registro.

Espero haberme explicado bien, Y QUE OJALA ME PUEDAN
AYUDAR!!!!

SUERTE!!
Respuesta Responder a este mensaje
#2 jiordie
02/09/2003 - 15:58 | Informe spam
Claro!! esto es lo que estoy utilizando para insertar los
campos en una tabla.

DECLARE @FecIni DATETIME,
@FecFin DATETIME,
@NumAño SMALLINT,
@NumMes SMALLINT

SET @FecIni = '2003-08-01'
SET @FecFin = '2003-08-31'
SET @NumAño = 2003
SET @NumMes = 8

TRUNCATE TABLE tempdb..Tmp_Valorizar_Minutas_01
INSERT INTO tempdb..Tmp_Valorizar_Minutas_01
(Registro, Fecha_Minuta, Hora_Minuta, Fecha_Hora,
ID_Centro, Numero_Orden, Termina, ID_Actividad, Cantidad,
Unidades, Reposicion, Horas)
SELECT Cos_Movimiento.Registro, Cos_Movimiento.
[Fecha Minuta], Cos_Movimiento.[Hora Minuta], CONVERT
(DATETIME, [Fecha Minuta], 100) + CONVERT(DATETIME, [Hora
Minuta], 108) + 2 AS Expr1, Cos_Movimiento.[ID Centro],
[Cos_MovimientoDatos].[Número Orden],
[Cos_MovimientoDatos].Termina, [Cos_MovimientoDatos].[ID
Actividad], [Cos_MovimientoDatos].Cantidad,
[Cos_MovimientoDatos].Unidades,
[Cos_MovimientoDatos].Reposición, (CONVERT(REAL,((DATEDIFF
(n, CONVERT(DATETIME, [Fecha Minuta], 100) + CONVERT
(DATETIME, [Hora Minuta], 108) + 2, Termina)))) / 60)
FROM Cos_Movimiento INNER JOIN
[Cos_MovimientoDatos] ON Cos_Movimiento.Registro =
[Cos_MovimientoDatos].Registro
WHERE Cos_Movimiento.[Fecha Minuta]
BETWEEN @FecIni AND @FecFin
ORDER BY Cos_Movimiento.Registro,
[Cos_MovimientoDatos].Termina;

PD: en el campo horas, debo colocar lo transcurrido desde
la ultima actividad hasta la activa, por eso mi pregunta
de ayer, ya que como esta funcionando en este campo me
deja el acumulado. (Fecha_Hora siempre va a ser la misma
por cada número de registro o de minuta)

GRACIAS POR TU AYUDA!!


Por favor, envía el script de creación de la tabla


con unos datos de
ejemplo para que te podamos ayudar mejor



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=...mp;ie=UTF-


8&group=microsoft.public.es
..sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/default.aspx?


scid=/support/sql/70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"jiordie" escribió en el mensaje
news:01fd01c370be$9a3b2390$
Buenas tardes!!, me disculpan, pero es que soy muy novato
en SQL, Tengo una tabla que es creada a partir de una
consulta, y en ella el registro Terminacion, que es una
fecha y hora, en cada registro en un campo tiempo debo
consignar el tiempo transcurrido entre la fecha de
terminacion del ultimo registro y la fecha de terminación
del registro activo, es decir algo así
REGISTRO FECHAEMPIEZA FECHA TERMINACION TIEMPO
1 01/09/03 06:00 01/09/03 07:00 1HORA
1 01/09/03 06:00 01/09/03 09:00 2HORAS
1 01/09/03 06:00 01/09/03 12:00 3HORAS
2 01/09/03 06:00 01/09/03 07:00 1HORA
2 01/09/03 06:00 01/09/03 09:00 2HORAS
2 01/09/03 06:00 01/09/03 12:00 3HORAS

El primer registro es fácil porque se resta con fecha
empieza, pero en adelante debo tomar de la ultima
terminación, porque la hora de inicio siempre va a ser la
misma por cada registro, e igualmente debo reiniciar esto
cada vez que cambia el número de registro.

Espero haberme explicado bien, Y QUE OJALA ME PUEDAN
AYUDAR!!!!

SUERTE!!



.

Respuesta Responder a este mensaje
#3 Jiordie
02/09/2003 - 22:42 | Informe spam
Carlos, YA LO TENGO, te envío el scrip por si tiene algo
que se pueda arreglar (o por si sirve para alguien más),
como lo hice tuve que crear una columna de identidad, y
correr el update despues de haber ingresado los datos a la
tabla:

DECLARE @FecIni DATETIME,
@FecFin DATETIME,
@NumAño SMALLINT,
@NumMes SMALLINT

SET @FecIni = '2003-08-01'
SET @FecFin = '2003-08-31'
SET @NumAño = 2003
SET @NumMes = 8
desde inicio minuta
DROP TABLE tempdb..Tmp_Valorizar_Minutas_01
CREATE TABLE tempdb..Tmp_Valorizar_Minutas_01
(IDNum INT IDENTITY(1,1),
Registro INT,
Fecha_Minuta DATETIME,
Hora_Minuta DATETIME,
Fecha_Hora DATETIME,
ID_Centro SMALLINT,
Numero_Orden INT,
Termina DATETIME,
ID_Actividad SMALLINT,
Cantidad MONEY,
Unidades SMALLINT,
Reposicion BIT,
Horas REAL)
INSERT INTO tempdb..Tmp_Valorizar_Minutas_01
(Registro, Fecha_Minuta, Hora_Minuta, Fecha_Hora,
ID_Centro, Numero_Orden, Termina, ID_Actividad, Cantidad,
Unidades, Reposicion, Horas)
SELECT Cos_Movimiento.Registro,
Cos_Movimiento.[Fecha Minuta],
Cos_Movimiento.[Hora Minuta],
CONVERT(DATETIME,[Fecha Minuta], 100) +
CONVERT(DATETIME, [Hora Minuta], 108) + 2 AS Expr1,
Cos_Movimiento.[ID Centro],
Cos_MovimientoDatos.[Número Orden],
Cos_MovimientoDatos.Termina,
Cos_MovimientoDatos.[ID Actividad],
Cos_MovimientoDatos.Cantidad,
Cos_MovimientoDatos.Unidades,
Cos_MovimientoDatos.Reposición,
CONVERT(REAL,((DATEDIFF(n, CONVERT
(DATETIME, [Fecha Minuta], 100) + CONVERT(DATETIME, [Hora
Minuta], 108) + 2, Termina)))) / 60
FROM Cos_Movimiento INNER JOIN
[Cos_MovimientoDatos] ON Cos_Movimiento.Registro =
[Cos_MovimientoDatos].Registro
WHERE Cos_Movimiento.[Fecha Minuta] BETWEEN
@FecIni AND @FecFin
ORDER BY Cos_Movimiento.Registro,
[Cos_MovimientoDatos].Termina;
DELETE Cos_HorasCentros FROM Cos_HorasCentros
WHERE (((Cos_HorasCentros.[Número Año]) = @NumAño)
AND ((Cos_HorasCentros.[Número Mes]) = @NumMes));
DELETE Cos_HorasOrdenes FROM Cos_HorasOrdenes
WHERE (((Cos_HorasOrdenes.[Número Año]) = @NumAño)
AND ((Cos_HorasOrdenes.[Número Mes]) = @NumMes));
UPDATE Val
SET Horas = CONVERT(REAL,((DATEDIFF(n,
Dos.Termina, Uno.Termina)))) / 60
FROM tempdb..Tmp_Valorizar_Minutas_01 Val INNER
JOIN
tempdb..Tmp_Valorizar_Minutas_01 Uno ON
Val.IDNum = Uno.IDNum INNER JOIN
tempdb..Tmp_Valorizar_Minutas_01 Dos ON
Uno.IDNum - 1 = Dos.IDNum AND Uno.Registro = Dos.registro



Por favor, envía el script de creación de la tabla


con unos datos de
ejemplo para que te podamos ayudar mejor



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=...mp;ie=UTF-


8&group=microsoft.public.es
..sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/default.aspx?


scid=/support/sql/70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"jiordie" escribió en el mensaje
news:01fd01c370be$9a3b2390$
Buenas tardes!!, me disculpan, pero es que soy muy novato
en SQL, Tengo una tabla que es creada a partir de una
consulta, y en ella el registro Terminacion, que es una
fecha y hora, en cada registro en un campo tiempo debo
consignar el tiempo transcurrido entre la fecha de
terminacion del ultimo registro y la fecha de terminación
del registro activo, es decir algo así
REGISTRO FECHAEMPIEZA FECHA TERMINACION TIEMPO
1 01/09/03 06:00 01/09/03 07:00 1HORA
1 01/09/03 06:00 01/09/03 09:00 2HORAS
1 01/09/03 06:00 01/09/03 12:00 3HORAS
2 01/09/03 06:00 01/09/03 07:00 1HORA
2 01/09/03 06:00 01/09/03 09:00 2HORAS
2 01/09/03 06:00 01/09/03 12:00 3HORAS

El primer registro es fácil porque se resta con fecha
empieza, pero en adelante debo tomar de la ultima
terminación, porque la hora de inicio siempre va a ser la
misma por cada registro, e igualmente debo reiniciar esto
cada vez que cambia el número de registro.

Espero haberme explicado bien, Y QUE OJALA ME PUEDAN
AYUDAR!!!!

SUERTE!!



.

Respuesta Responder a este mensaje
#4 Archer
08/09/2003 - 19:01 | Informe spam
select top 1 fecha terminacion from [NombreTabla] order by
fecha terminacion

prueba esto a ver si es lo que necesitas
suerte

Buenas tardes!!, me disculpan, pero es que soy muy novato
en SQL, Tengo una tabla que es creada a partir de una
consulta, y en ella el registro Terminacion, que es una
fecha y hora, en cada registro en un campo tiempo debo
consignar el tiempo transcurrido entre la fecha de
terminacion del ultimo registro y la fecha de terminación
del registro activo, es decir algo así
REGISTRO FECHAEMPIEZA FECHA TERMINACION TIEMPO
1 01/09/03 06:00 01/09/03 07:00 1HORA
1 01/09/03 06:00 01/09/03 09:00 2HORAS
1 01/09/03 06:00 01/09/03 12:00 3HORAS
2 01/09/03 06:00 01/09/03 07:00 1HORA
2 01/09/03 06:00 01/09/03 09:00 2HORAS
2 01/09/03 06:00 01/09/03 12:00 3HORAS

El primer registro es fácil porque se resta con fecha
empieza, pero en adelante debo tomar de la ultima
terminación, porque la hora de inicio siempre va a ser la
misma por cada registro, e igualmente debo reiniciar esto
cada vez que cambia el número de registro.

Espero haberme explicado bien, Y QUE OJALA ME PUEDAN
AYUDAR!!!!

SUERTE!!

.

Respuesta Responder a este mensaje
#5 Archer
08/09/2003 - 19:12 | Informe spam
disculpa me falto una cosa

"select top 1 fecha terminacion from [NombreTabla] order
by
fecha terminacion desc"

ahora si te va a traer el ultimo registro.


Por favor, envía el script de creación de la tabla


con unos datos de
ejemplo para que te podamos ayudar mejor



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro

Se agradece la inclusión de sentencias DDL

Archivo de respuestas anteriores en:
http://groups.google.com/groups?hl=...mp;ie=UTF-


8&group=microsoft.public.es
..sqlserver

(Guía de netiquette del foro)
http://www.helpdna.net/bosqlfaq00.htm
http://perso.wanadoo.es/rubenvigon/foro

(FAQ's de SQL Server)
http://support.microsoft.com/default.aspx?


scid=/support/sql/70faq.asp
http://www.helpdna.net/bosqlfaq.htm

"jiordie" escribió en el mensaje
news:01fd01c370be$9a3b2390$
Buenas tardes!!, me disculpan, pero es que soy muy novato
en SQL, Tengo una tabla que es creada a partir de una
consulta, y en ella el registro Terminacion, que es una
fecha y hora, en cada registro en un campo tiempo debo
consignar el tiempo transcurrido entre la fecha de
terminacion del ultimo registro y la fecha de terminación
del registro activo, es decir algo así
REGISTRO FECHAEMPIEZA FECHA TERMINACION TIEMPO
1 01/09/03 06:00 01/09/03 07:00 1HORA
1 01/09/03 06:00 01/09/03 09:00 2HORAS
1 01/09/03 06:00 01/09/03 12:00 3HORAS
2 01/09/03 06:00 01/09/03 07:00 1HORA
2 01/09/03 06:00 01/09/03 09:00 2HORAS
2 01/09/03 06:00 01/09/03 12:00 3HORAS

El primer registro es fácil porque se resta con fecha
empieza, pero en adelante debo tomar de la ultima
terminación, porque la hora de inicio siempre va a ser la
misma por cada registro, e igualmente debo reiniciar esto
cada vez que cambia el número de registro.

Espero haberme explicado bien, Y QUE OJALA ME PUEDAN
AYUDAR!!!!

SUERTE!!



.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida