En este grupo En todos

Foro de SQL Server



reemplazar last en sql server

sergio
Antioquia, Colombia
Escrito por Sergio Echavarria
el 19/03/2010

Buenas Tardes:

Tengo una tabla llamada horas con los campos (id, codigo, hora_inicial, hora_final, descuento, descuento_co, tiempo total)

lo que quiero es que me traiga el ultimo registro que se halla ingresado de cada codigo.

Me lo cumple la siguiente cadena sql:

select codigo, last(fecha) as fe, last(hora_inicial) as hi, last(hora_final) as hf,last(descuento) as dcto, last(descuento_co) as dcto_co, last(tiempo_total) as tt
from horas
group by codigo
order by codigo

El problema es que esa cadena no me funciona en sql server ya que la necesito para exportar unos datos de un programa a un archivo plano y solo admite el lenguaje de sql server; no me sirve el comando "max" ya que no siempre el ultimo registro tiene los valores maximos.

Saludos desde Colombia


Mcts Isaias Islas González
Distrito Federal, Mé...
Escrito por Mcts Isaias Islas González
el 19/03/2010

Pues para encontrar el ULTIMO registro se utiliza MAX(), no conozco LAST.

Tomas Boixet
Santiago, Chile
Escrito por Tomas Boixet
el 23/03/2010

Sergio,

Supongo que la consulta la sacaste de Access, donde sí que existe el LAST. Pero en SQL Server hay que buscar el último registro de otra forma, por ejemplo:

select codigo, fecha as fe, hora_inicial as hi, hora_final as hf, descuento as dcto, descuento_co as dcto_co, tiempo_total as tt
from horas
where id IN (select max(id) from horas group by codigo)
order by codigo;

Lo anterior suponiendo que ID sea autonumérico, y que por lo tanto el ID más alto de un codigo será el último registro ingresado.

Ya, si yo también echo de menos el LAST...

Saludos desde Chile

Sergio Echavarria
Antioquia, Colombia
Escrito por Sergio Echavarria
el 23/03/2010

Buenos Dias:

Ensaye la cadena SQL que copio Tomas y efectivamente me lanza los resultados que queria, muchas gracias por la ayuda y por el codigo, de verdad que me ayudas bastante.

Nuevamente gracias al foro y a las personas que me ayudaron en él para solucionar mi problema.