Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/01/2013, 06:06
malmonacid
 
Fecha de Ingreso: enero-2013
Mensajes: 16
Antigüedad: 11 años, 4 meses
Puntos: 0
Obtener la suma más alta cumpliendo varias condiciones a la vez

Hola a todos,

Primero que todo muy Feliz Año para todos!!.............soy más que nuevo, ya que soy nuevo en el foro y además en las lides relacionadas con el desarrollo web, por ende no se extrañen si mi pregunta y/o mi manera de preguntar no son las mejores .

Mi solicitud de ayuda tiene que ver con que tengo la tabla "tblVotos_fotos" con la siguientes estructura:

id int(11) NOT NULL auto_increment,
idFoto int(11) NOT NULL,
idVotante int(11) NOT NULL,
idDueno_foto int(11) NOT NULL,
intVoto int(1) NOT NULL,
dateFecha_voto timestamp NOT NULL,

Necesito obtener el "idFoto" con la mayor cantidad de votos y esa cantidad, cumpliendo las siguientes condiciones:
1.- Que sea para el "idDueno_foto" que quiera. (WHERE idDueno_foto= 'x')......Mi problema viene ahora.........
2.- Considerando(sumando) el último voto realizado por el "idVotante", ya que este puede actualizar su voto cuantas veces quiera y estos quedan registrados en la misma tabla (sirve para conocer su comportamiento).

He tratado usando INNER JOIN, HAVING IN, subconsultas anidadas.........pero la verdad estoy mareado.

Entiendo que para lograr lo que quiero necesito primero ordenar, agrupar y descartar registros; obteniendo lo siguiente por ej:

id idFoto idVotante idDueno_foto intVoto dateFecha_voto
2 | 1 | 45 | 58 | 1 | 20/12/2012
5 | 1 | 40 | 58 | 0 | 22/12/2012
9 | 1 | 38 | 58 | 1 | 24/12/2012
3 | 2 | 40 | 58 | 1 | 21/12/2012
7 | 2 | 45 | 58 | 0 | 23/12/2012

y sobre esto podría obtener que "idFoto" =1 es la más votada con 2 votos.

Espero que se entienda y perdón por no usar código, si para alguien es mejor.

Gracias de antemano por su tiempo y ayuda.

Quedo atento a sus consultas y/o respuestas.

Saludos.