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 26-02-2004
albertron albertron is offline
Miembro
 
Registrado: dic 2003
Posts: 16
Poder: 0
albertron Va por buen camino
Ayuda con consulta

Hola a todos,

Tengo dos tablas, EMPLEADOS e HISTORICO. En la tabla HISTORICO puede haber varios registros por cada registro de la tabla EMPLEADOS relacionados por EMPLEADOS.ID, HISTORICO.IDEMPLEADO. Necesito hacer una consulta sobre todos los campos de la tabla EMPLEADOS y sólo sobre el último insertado en la tabla HISTORICO, el último en la tabla histórico sería el mayor HISTORICO.ID, he intentado algo así pero lógicamente no funciona

SELECT TOP 1 * FROM EMPLEADOS
LEFT JOIN HISTORICO
ON EMPLEADOS.ID=HISTORICO.EMPLEADOS
WHERE EMPLEADOS.NOMBRE='alberto'

Muchas gracias,

Un saludo.

Alberto.
Responder Con Cita
  #2  
Antiguo 27-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Porque no funciona?

Y si haces un

order by historico.id desc

sigue sin funcionar?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 27-02-2004
albertron albertron is offline
Miembro
 
Registrado: dic 2003
Posts: 16
Poder: 0
albertron Va por buen camino
Hola, gracias por responder,

Funciona para devolver sólo una fila, pero si pongo como condición por ejemplo EMPLEADOS.SEXO='M' necesito que me devuelva un resultado por cada registro de EMPLEADOS y sólo me devuelve un registro.

Gracias, un saludo.
Responder Con Cita
  #4  
Antiguo 27-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
ahhh....

proba con una subconsulta

Código:
Select e.nombre, e.apellidos, h.monto_pago
  from empleados e left join historico h
        on e.id = h.idempleado
 where h.id = (select max(h2.id)
                     from historico h2
                    where h2.idempleado = e.id)
eso si... no será rápido ni muy óptimo en todos los motores. Eso ya depende de la habilidad del motor para establecer un plan...

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 27-02-2004
albertron albertron is offline
Miembro
 
Registrado: dic 2003
Posts: 16
Poder: 0
albertron Va por buen camino
Funciona perfectamente, muchas gracias...

Un saludo.
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


La franja horaria es GMT +2. Ahora son las 20:45:53.


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