Ver Mensaje Individual
  #8 (permalink)  
Antiguo 06/06/2011, 14:49
pogf
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Consulta de una novata

A ver, quise reducir el problema, pero veo que una servidora no avanza, por eso pongo el problema real:

La tabla [Productos] está compuesta de "Indice" tipo autonumérico (clave principal), y "Producto" tipo texto.
1,Mesa
2,Silla
3,Sofa
5,Mueble
El Indice 4 no existe, se ha borrado el producto a votar

La tabla [Votaciones] está compuesta de "Indice" tipo autonumérico (clave principal), "IP" tipo texto, y "Producto" tipo número.
Indice,IP,Producto
1,1,1 (registro desechable porque la IP 1 ha votado más tarde al producto 3)
2,1,2 (registro desechable porque la IP 1 ha votado más tarde al producto 3)
3,1,3 La IP 1 vota por Sofa
4,2,1 La IP 2 vota por Mesa
5,3,1 La IP 3 vota por Mesa
6,4,5 La IP 4 vota por Mueble
Nadie vota por Silla

Entonces el select tiene que dar:
Votos,Producto,Indice
2,Mesa,1
1,Sofa,3
1,Mueble,5
0,Silla,2

Con esto:
SELECT MAX(Votaciones.Indice) FROM Votaciones GROUP BY Votaciones.IP
Consigo 3,4,5,6 justo los registros que deseo

Asi que hago esto:
SELECT Count(Votaciones.Producto) AS Votos, Productos.Producto, Productos.Indice
FROM Votaciones INNER JOIN Productos ON Votaciones.Producto=Productos.Indice
WHERE Votaciones.Indice IN (SELECT MAX(Votaciones.Indice) FROM Votaciones GROUP BY Votaciones.IP)
GROUP BY Productos.Producto, Productos.Indice

Y consigo esto:
Votos,Producto,Indice
2,Mesa,1
1,Sofa,3
1,Mueble,5

Ya solo falta añadir:
0,Silla,2

Si hago: UNION SELECT 0, Productos.Producto, Productos.Indice from Productos
se añaden todos los productos, pero yo solo quiero: 0,Silla,2

Espero que se me entienda ahora, gracias eh!