Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/03/2012, 17:23
Hexplore
 
Fecha de Ingreso: enero-2010
Mensajes: 73
Antigüedad: 14 años, 3 meses
Puntos: 9
Respuesta: Sentencia SQL (access) para mensajes del foro

Veamos, parece que lo he conseguido con esto:

SELECT TOP $MENSAJES_POR_PAGINA MAX(IdMensajeForo) AS NumeroMensaje, IdTema FROM MensajesForo WHERE IdTema not in (
SELECT TOP ($NUMERO_PAGINA - 1) * $MENSAJES_POR_PAGINA IdTema AS NumeroMensaje FROM MensajesForo GROUP BY IdTema ORDER BY MAX(IdMensajeForo) DESC
) GROUP BY IdTema ORDER BY MAX(IdMensajeForo) DESC

Digamos que estoy seleccionando los primeros 10 ($MENSAJES_POR_PAGINA) mensajes que haya que no estén en las páginas anteriores ($NUMERO_PAGINA - 1) * $MENSAJES_POR_PAGINA

En el caso de que $NUMERO_PAGINA sea la 1, ($NUMERO_PAGINA - 1) * $MENSAJES_POR_PAGINA = 0, y da error, así que he tenido que ponerle:
IF $NUMERO_PAGINA = 1 Then
SQL = "SELECT TOP $MENSAJES_POR_PAGINA MAX(IdMensajeForo) AS NumeroMensaje, IdTema FROM MensajesForo GROUP BY IdTema ORDER BY MAX(IdMensajeForo) DESC"
Else
SELECT TOP $MENSAJES_POR_PAGINA MAX(IdMensajeForo) AS NumeroMensaje, IdTema FROM MensajesForo WHERE IdTema not in (
SELECT TOP ($NUMERO_PAGINA - 1) * $MENSAJES_POR_PAGINA IdTema AS NumeroMensaje FROM MensajesForo GROUP BY IdTema ORDER BY MAX(IdMensajeForo) DESC
) GROUP BY IdTema ORDER BY MAX(IdMensajeForo) DESC
End If

Última edición por Hexplore; 29/03/2012 a las 17:48 Razón: Error cuando $NUMERO_PAGINA = 1