Ayuda con COUNT

24/06/2005 - 01:40 por Matías L | Informe spam
Hola a todos, tengo las siguiente tabla

IdAlumno IdEstado Fecha
1 2 10/02/2005
1 3 12/03/2005
1 2 04/03/2005
3 2 09/12/2005
3 1 13/03/2005
3 2 17/04/2005
4 2 18/03/2005

Tengo que saber la cantidad de alumnos(IdAlumno) que estan con IdEstado = 2
pero con fecha mas grande,
ya que un alumno puede tener mas de una vez el mismo estado.

Estoy con algo asi, pero no logro darle:

SELECT count(*) as Cant
from AlumnosEstados
Where IdEstado = 2 and Fecha = (SELECT MAX([Fecha]) FROM
AlumnosEstados D)

Me tendría que devolver Cant = 3

Saludos y gracias

Preguntas similare

Leer las respuestas

#1 Maxi
24/06/2005 - 02:01 | Informe spam
Hola, martin, no comprendo como es con fecha mas grande, podrias indicarme
de estos registros cuales deberia devolver?


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Matías L" escribió en el mensaje
news:%
Hola a todos, tengo las siguiente tabla

IdAlumno IdEstado Fecha
1 2 10/02/2005
1 3 12/03/2005
1 2 04/03/2005
3 2 09/12/2005
3 1 13/03/2005
3 2 17/04/2005
4 2 18/03/2005

Tengo que saber la cantidad de alumnos(IdAlumno) que estan con IdEstado =
2
pero con fecha mas grande,
ya que un alumno puede tener mas de una vez el mismo estado.

Estoy con algo asi, pero no logro darle:

SELECT count(*) as Cant
from AlumnosEstados
Where IdEstado = 2 and Fecha = (SELECT MAX([Fecha]) FROM
AlumnosEstados D)

Me tendría que devolver Cant = 3

Saludos y gracias


Respuesta Responder a este mensaje
#2 Matías L
24/06/2005 - 02:50 | Informe spam
Gracias Maxi por responder, con fecha mas grande me refiero a la fecha
mayor, ej:

1 2 04/03/2005
3 2 09/12/2005
4 2 18/03/2005

Entonces yo se q hay 3 alumnos cuyo ultimo estado fue el estado 2, o sea me
hace falta saber el ultimo IdEstado que tiene la tabla segun la fecha mayor.
Espero se entienda, soy malo para explicar.

Te comento que por ahora lo solucione asi:
SELECT COUNT(*) as Cant
FROM AlumnosEstados A
WHERE A.[Fecha] = (SELECT MAX([Fecha]) FROM
AlumnosEstados D WHERE A.IdAlumno = D.IdAlumno) AND A.IdEstado = 2

Aparentemente funciona pero tengo q probarlo bien, ya que me tiene q servir
para los distintos IdEstados q tiene la tabla, si tenes sugerencias
bienvenidas.

Muchas Gracias, Saludos desde CBA(Arg)

PD: Maxi, vos te pasas unas 12 hs por dia en la pc? Porq veo respuestas
tuyas desde la mañana a la noche, sos un maestro!!!!!!!!!!!!

Yo estoy unas 11 a 12 hs por dia en la pc entre el trabajo y el estudio...
jejeje
encima en el trabajo peleo con FOX9 y en mi casa con VB y SQL


"Maxi" escribió en el mensaje
news:e$aKq$
Hola, martin, no comprendo como es con fecha mas grande, podrias indicarme
de estos registros cuales deberia devolver?


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Matías L" escribió en el mensaje
news:%
> Hola a todos, tengo las siguiente tabla
>
> IdAlumno IdEstado Fecha
> 1 2 10/02/2005
> 1 3 12/03/2005
> 1 2 04/03/2005
> 3 2 09/12/2005
> 3 1 13/03/2005
> 3 2 17/04/2005
> 4 2 18/03/2005
>
> Tengo que saber la cantidad de alumnos(IdAlumno) que estan con IdEstado
> 2
> pero con fecha mas grande,
> ya que un alumno puede tener mas de una vez el mismo estado.
>
> Estoy con algo asi, pero no logro darle:
>
> SELECT count(*) as Cant
> from AlumnosEstados
> Where IdEstado = 2 and Fecha = (SELECT MAX([Fecha]) FROM
> AlumnosEstados D)
>
> Me tendría que devolver Cant = 3
>
> Saludos y gracias
>
>


Respuesta Responder a este mensaje
#3 Isaias
24/06/2005 - 04:41 | Informe spam
Con el permiso de Maxi, creo que.

SELECT IdAlumno, IdEstado, MAX(Fecha)
FROM TABLA
GROUP BY IdAlumno, IdEstado
Respuesta Responder a este mensaje
#4 Matías
24/06/2005 - 13:48 | Informe spam
Gracias, lo voy a probar...


"Isaias" escribió en el mensaje
news:

Con el permiso de Maxi, creo que.

SELECT IdAlumno, IdEstado, MAX(Fecha)
FROM TABLA
GROUP BY IdAlumno, IdEstado
Respuesta Responder a este mensaje
#5 Alejandro Mesa
24/06/2005 - 14:55 | Informe spam
Matías,

Recuerda adicionarle el filtro a la sentencia posteada por Isaias.

SELECT IdAlumno, IdEstado, MAX(Fecha)
FROM TABLA
where IdEstado = 2
GROUP BY IdAlumno, IdEstado


AMB

"Matías" wrote:

Gracias, lo voy a probar...


"Isaias" escribió en el mensaje
news:
>
> Con el permiso de Maxi, creo que.
>
> SELECT IdAlumno, IdEstado, MAX(Fecha)
> FROM TABLA
> GROUP BY IdAlumno, IdEstado



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida