PDA

Ver la Versión Completa : Obtener fecha reciente con campos adicionales


antigrondona
08-05-2012, 14:40:18
Hola a todos, estoy haciendo una consulta en sql server para obtener la fecha reciente, pero con ello necesito campos adicionales. La consulta seria sencilla:
select max(fehca_ins) from AluCursos
allí no hay problema porque trae la fecha correcta. Pero, como necesito otros campos ademas de la fecha, allí empiezan los probelmas. Comencé por lo sencillo:
select max(fehca_ins),cur_año,cur_div from AluCursos group by cur_año,cur_div
pero en lugar de traer la fecha reciente con los datos adicionales me trae todos los datos adicionales con sus respectivas fechas, en lugar de una fila varias.
Hay alguna forma sencilla de lograr esto? Estoy intentando hacerlo con consultas anidadas pero no logro resultados.
Gracias, espero sus respuestas.

Casimiro Notevi
08-05-2012, 15:15:11
Recuerda poner los tags al código fuente, ejemplo:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)

antigrondona
08-05-2012, 15:20:44
Perdón, pensé que era solo para código delphi.

Casimiro Notevi
08-05-2012, 15:25:18
De todas formas, creo que no he entendido bien tu problema, por ejemplo:

select nombrecliente, max(fechacreacion)
from TBCLIENTES
group by nombrecliente

Devuelve todos los clientes con su fechacreacion, ¿no es algo similar lo que quieres hacer?

antigrondona
08-05-2012, 15:59:25
De todas formas, creo que no he entendido bien tu problema, por ejemplo:

Código SQL [-] (http://www.clubdelphi.com/foros/#)select nombrecliente, max(fechacreacion) from TBCLIENTES group by nombrecliente


Devuelve todos los clientes con su fechacreacion, ¿no es algo similar lo que quieres hacer?
No, necesito sólo la fecha mas reciente con sus datos, en tu ejemplo sería fechacreacion mas reciente con los datos solo de ese cliente.

Casimiro Notevi
08-05-2012, 16:03:52
No, en mi ejemplo sí que devuelve todos los clientes.

antigrondona
08-05-2012, 16:05:33
No, en mi ejemplo sí que devuelve todos los clientes.

Por eso, yo necesito solo el cliente más reciente.

Casimiro Notevi
08-05-2012, 16:11:24
Te había entendido justo al revés, bueno, entonces así:

select first 1 nombresociedad, fechacreacion
from TBCLIENTES
order by fechacreacion
desc


Deberás adaptarlo al lenguaje sql de tu base de datos. Creo que 'first' es 'top' en tu caso.

antigrondona
09-05-2012, 13:17:02
Gracias, era justo lo que necesitaba, por si a alguien le sirve con asc en lugar de desc toma la fecha más ntigua.

Casimiro Notevi
09-05-2012, 13:23:28
Gracias, era justo lo que necesitaba, por si a alguien le sirve con asc en lugar de desc toma la fecha más ntigua.

Claro, aunque no hace falta usar asc porque por defecto, si el índice es "normal", entonces será siempre ascendente.
Solamente, cuando se requiera, es necesario usar descendente, como en este caso.