Bonjour à tous

J'ai :

  • Une table spectacles
  • Une tables schedules
  • Une liaison de 1 à n (plusieurs dates pour un spectacle)


Je souhaite récupérer le spectacle le plus proche dans un lieu en privilégiant les dates dans le futur

J'ai essayé la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT DISTINCT (s.idspectacle)
FROM spectacles s JOIN schedules sc
ON sc.idspectacle = s.idspectacle
WHERE sc.idcontact =360
GROUP BY s.idspectacle
ORDER BY SIGN(DATEDIFF( NOW(), sc.date )), ABS(DATEDIFF(NOW(), sc.date))
LIMIT 0,1
Mais avec ça, je ne parviens pas à privilégier les spectacles dans le futur

Ce que j'ai besoin c'est de sortir soit le prochain spectacle, soit le dernier s'il n'y a pas de prochain.

Pour préciser, disons que :

  • NOW() est le 25/11/2013
  • spectacle1 est joué du 24/11/2013 au 30/11/2013
  • spectacle2 est joué du 05/07/2014 au 10/07/2014


c'est spectacle2 qui sort en premier dans ma requête.

Merci d'avance pour vos idées