Delphi - Consulta SQL

 
Vista:

Consulta SQL

Publicado por Pablo (16 intervenciones) el 02/10/2003 22:37:50
hola, queria hacer una consultita sobre SQL

tengo dos tablas:
Movimientos: IdMovimiento(*) Nro Socio FechaIngreso FechaBaja

Socios: NroSocio(*) Nombre

(*) = key, campo tipo Autoincremental

en Movimientos puede haber mas de un registro con el mismo NroSocio, en el caso de que
haya renunciado, se registre la fecha de baja y luego vuelto a ingresar, lo que quiero es redactar una consulta
que me devuelva NroSocio Nombre, FechaIngreso, pero que esta fechaIngreso sea la mas actual,
lo que yo hice fue:

Select M.NroSocio, max(M.FechaIngreso)
from Movimientos M
group by M.NroSocio
Order by M.NroSocio

y me anduvo bien, el problema es cuando le quise agregar en campo nombre de la tabla socios:

Select M.NroSocio, S.Nombre, max(M.FechaIngreso)
from Movimientos M, Socios S
where (M.NroSocio = S.NroSocio)
group by M.NroSocio
Order by M.NroSocio

Alli me dio error, me pueden decir en que me equivoco y/o como hacerlo?

Gracias
Pablo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta SQL

Publicado por Fer (269 intervenciones) el 03/10/2003 09:10:00
El GROUP BY tiene que incluir todas las columnas (o campos) que no estén afectados por una función de agregación. En tu caso:

select
m.nrosocio
,s.nombre
,max(m.fechaingreso)
from
movimientos m
,socios s
where
(m.nrosocio = s.nrosocio)
group by
m.nrosocio
,S.NOMBRE
order by
m.nrosocio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta SQL

Publicado por Delfino (1216 intervenciones) el 03/10/2003 20:39:42
Añadir q las condiciones en las consultas con Group By se hacen mejor con un Having..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar