Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
Extraer registros con ultima fecha

Buen día

Tengo una tabla que tiene los campos consecutivo, código, fecha, costopromedio, entrada, valor, promedio. Cada cogido se repite n veces con fecha diferente, y requiero extraer el ultimo registro de cada código, con los campos cogido, fecha y costopromedio.

En otras palabras necesito saber cual es el costo promedio ultima de cada código.

Gracias
__________________
Alvaro Rubio R
Responder Con Cita
  #2  
Antiguo 09-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y cual es el "último registro de cada código"?, ¿el que tenga la fecha más actual?, ¿el que tenga el 'consecutivo' más alto?, etc.
Responder Con Cita
  #3  
Antiguo 09-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y cual es el "último registro de cada código"?, ¿el que tenga la fecha más actual?, ¿el que tenga el 'consecutivo' más alto?, etc.
Y "el costo promedio último de cada codigo", ¿es el valor del campo costopromedio?, ¿o es el promedio del valor del campo promedio?, ¿o es el último valor del campo promedio?, etc.

Una explicación clara haría falta
Responder Con Cita
  #4  
Antiguo 09-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
Buena pregunta

El que tenga la fecha mas actual, que coincide con el que tiene el consecutivo mas alto(Para cada Código (producto))
__________________
Alvaro Rubio R
Responder Con Cita
  #5  
Antiguo 09-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
Aclaracion

Es el valor que tenga el campo costopromedio, para el registro

Arubio
__________________
Alvaro Rubio R
Responder Con Cita
  #6  
Antiguo 09-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
No me aplica a cada código

Si uso esta expresión me trae solo los registros de la ultima fecha, pero no para cada código, Claro que ca estoy mostrando toso los resultados y solo necesito el código, la fecha y el costo promedio.

Me esta trayendo la consulta sobre toda la tabla, cual es el ultimo codigo, y requiero para cada codigo, cual el el ultimo registro.

select * from itemact where fecha=(select max(fecha)from itemact)
__________________
Alvaro Rubio R
Responder Con Cita
  #7  
Antiguo 09-06-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ALVARO RUBIO Ver Mensaje
Buen día

Tengo una tabla que tiene los campos consecutivo, código, fecha, costopromedio, entrada, valor, promedio. Cada cogido se repite n veces con fecha diferente, y requiero extraer el ultimo registro de cada código, con los campos cogido, fecha y costopromedio.
Hola Alvaro.

Probá de este modo:
Código SQL [-]
SELECT DISTINCT CODIGO, FECHA, COSTOPROMEDIO FROM TU_TABLA T1
WHERE FECHA = (SELECT MAX(FECHA) FROM TU_TABLA T2 WHERE T1.CODIGO = T2.CODIGO)

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 09-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
No S E Ejecuta

Efectué el ejercicio y la consulta se queda pagada
__________________
Alvaro Rubio R
Responder Con Cita
  #9  
Antiguo 09-06-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ALVARO RUBIO Ver Mensaje
Efectué el ejercicio y la consulta se queda pagada
Es realmente curioso... acabo de hacer una prueba con estos valores:

Código:
CODIGO	FECHA	COSTOPROMEDIO	ENTRADA	VALOR	PROMEDIO
001	27/05/2012	1	1	1	1
002	27/05/2012	2	2	2	2
001	30/05/2012	3	3	3	3
002	30/05/2012	4	4	4	4
003	27/05/2012	5	5	5	5
001	01/06/2012	8	8	8	8
004	27/05/2012	6	6	6	6
003	30/05/2012	7	7	7	7
001	09/06/2012	9	9	9	9
La misma consulta:
Código SQL [-]
SELECT DISTINCT CODIGO, FECHA, COSTOPROMEDIO FROM TU_TABLA T1
WHERE FECHA = (SELECT MAX(FECHA) FROM TU_TABLA T2 WHERE T1.CODIGO = T2.CODIGO)

Y obengo estos resultados:
Código:
CODIGO	FECHA	COSTOPROMEDIO
001	09/06/2012	9
002	30/05/2012	4
003	30/05/2012	7
004	27/05/2012	6
Es decir lo que solicitaste: "el ultimo registro de cada código, con los campos codigo, fecha y costopromedio"

Todo esto bajo la lógica suposición que un registro con el mismo código será posterior acorde a la fecha...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 09-06-2012 a las 19:14:23.
Responder Con Cita
  #10  
Antiguo 13-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
Si esd exacto lo que necesito

Voy a ver que no este cometiendo algun error, la tabla tiene 433366 registros
__________________
Alvaro Rubio R
Responder Con Cita
  #11  
Antiguo 14-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
No Me Genera Un Resultado

Revise y no encontre error, pero al ejecutar la consulta se queda pegado, hasta ahora lleva 40 minutos y sigue sin terminar , la tabla tiene 433 registros y el resultado no debe de superar los 4000, que son los porductos qwue manejamos.

Alguna sugerencia.
__________________
Alvaro Rubio R
Responder Con Cita
  #12  
Antiguo 14-06-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Código SQL [-]
select Top 1 Codigo, Fecha, Costopromedio From Tu_tabla T1
Order By Fecha Desc
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #13  
Antiguo 14-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
Intente Esta Otra Opcion

Me genera error en el caracter 11. o sea el 1 despues de TOP.


Agradezco le des una revisadita


Arubio
__________________
Alvaro Rubio R
Responder Con Cita
  #14  
Antiguo 14-06-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Acá justo lo acabo de probar en mi SQL2005, con una base de datos que tengo:
Código SQL [-]
SELECT TOP 1 strNumeroRemesa FROM tblRemesas
ORDER BY dtFechaRemesa DESC

Me funciona perfectamente, esí que lo que importa es la idea, debe ser error de nombre de campo o tabla, trata de implementarlo con tu base de datos y tablas.

Saludos.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #15  
Antiguo 14-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
Funciono Perfecto

Probe esta respuesta en una copia de la base de datos donde no estaba conectado ningun usuario y me genero la respuetsa correcta.

select distinct item, fecha, costop from ITEMACT T1
WHERE fecha = (select max(fecha) from ITEMACT T2 where T1.item=T2.item)

Voy a evaluar la otra opcion revisando lo que me sugieren.

Graccias or la yuda
__________________
Alvaro Rubio R
Responder Con Cita
  #16  
Antiguo 14-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código SQL [-]
select distinct item, fecha, costop from ITEMACT T1
WHERE fecha = (select max(fecha) from ITEMACT T2 where T1.item=T2.item)


Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #17  
Antiguo 14-06-2012
ALVARO RUBIO ALVARO RUBIO is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 23
Poder: 0
ALVARO RUBIO Va por buen camino
No Tan Perfecto

Celebre antes de tiempo, gracias por la aclaracion del estilo.

La consulta me esta generando registros duplicados, de 21000 registros 540 son duplicados, de codigos que tuvieron mas de un movimiento en la ultima fecha
__________________
Alvaro Rubio R
Responder Con Cita
  #18  
Antiguo 05-07-2012
Karzie Karzie is offline
Registrado
NULL
 
Registrado: jun 2012
Posts: 5
Poder: 0
Karzie Va por buen camino
Solución

Código SQL [-]
Esta Query te sacará de apuros:

select Id, Fecha, CostoPromedio  from Montos_Promedios tbl
where EXISTS(select ID,Max(Fecha) As Fecha from Montos_Promedios Group by ID HAVING ID = tbl.ID And Max(Fecha) = tbl.Fecha)
Order by ID

1    2012-06-09 00:00:00.000    9.00
2    2012-05-30 00:00:00.000    4.00
3    2012-05-30 00:00:00.000    7.00
4    2012-05-27 00:00:00.000    6.00
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber Fecha de la Ultima modificación a un Procedimiento Almacenado Efren2006 Firebird e Interbase 2 29-10-2011 03:36:28
Extraer última palabra de una frase Abuelo7 Conexión con bases de datos 4 19-10-2008 20:41:59
Funcion Ultima fecha guille85 SQL 15 07-11-2007 16:51:23
consultar ultima fecha y ultima hora KeyMan MySQL 3 07-02-2007 16:50:25
Fecha última visita usuario sitio Web dec PHP 6 18-07-2006 09:49:57


La franja horaria es GMT +2. Ahora son las 13:16:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi