Bonjour,

J'ai une table "evenement" et une table "dates" qui contient les champs "début", "fin" et "evenement" (clef étrangère sur le champ "clef" de la table "evenement").

Je souhaite afficher, ligne par ligne, chaque enregistrement de la table "evenement" avec un champ indiquant le première date de début trouvé supérieur à la date actuelle et un autre champ indiquant la date de fin correspondant à la ligne ou il y a la date de début trouvée dans la table "dates", ainsi qu'un champs indiquant les dates futures. Et ne pas afficher les dates passées.

Pour cela je fais la requête suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
SELECT
	evenements.clef,
	d.debut as debut,
	d.fin as fin,
	(SELECT array_to_json(array_agg(t)) from ( select debut, fin from dates where evenement = evenements.clef and not current_timestamp > fin order by debut asc offset 1) t) as datesfutures
FROM evenements 
INNER JOIN (SELECT evenement, debut, fin FROM dates WHERE NOT current_timestamp > dates.fin 
--AND evenement = 93
ORDER BY dates.debut ASC
--LIMIT 1
) d ON d.evenement = evenements.clef
Problème, elle m'affiche les lignes en double, pour y remédier je peux enlever les commentaires sur les deux lignes ou il y en a, la ça marche mais uniquement pour événement numéro 93 (logique).

Ce n'est pas grave que le champ "datesfutures" soit en json, si bien cette requête est faite pour être intégrée dans geoServer qui me fournira un geoJSON (je n'ai pas indiqué tous les champs présents dans mon exemple).

En remplaçant "93" par evenements.clef, j'ai l'erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
There is an entry for table "evenements", but it cannot be referenced from this part of the query.
Comment puis-je faire ? Je voudrais avoir un truc du genre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
[evenement1][Date de debut la plus proche de la date actuelle mais non passée][date de fin][liste des dates futures]
[evenement2][Date de debut la plus proche de la date actuelle mais non passée][date de fin][liste des dates futures]
...
Nom : Lignes.png
Affichages : 123
Taille : 11,5 Ko

Merci de votre aide !