Bonjour,
Alors là, j'ai une requête hyper complexe à mettre en place (enfin selon mon point de vue qui est loin d'être celui d'une experte). J'ai d'ailleurs eu du mal à trouver un intitulé pour cette discussion assez explicite !
Alors c'est parti, je me lance, j'explique le contexte :
J'ai une table "communes" (id_commune, nom_commune, zone_surveillance) et j'ai une table "communes_exclues" (id_exclusion, communes_id_commune, date_exclusion). Dans cette deuxième table, j'ai la liste des communes exclues de nos activités avec une date d'exclusion.
Alors voilà, je voudrais faire une requête où je souhaite la liste des communes de la zone de surveillance n°10 et qui n'apparait pas dans la liste d'exclusion selon une période d'activité (donc la date d'exclusion est à prendre en compte). Pour cette période, j'aurais donc $date_debut et $date_fin.
Voici ce que j'ai commencé à faire :
Mais cela ne me convient pas puisque si je demande un rapport du 1er janvier au 31 décembre et qu'une commune a été exclue le1er mai de la même année, la commune doit quand même apparaitre dans la liste puisqu'elle aura eu de l'activité du 1er janvier au 30 avril.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT c . * FROM atl_commune c WHERE atl_zone_surveillance_id_zs = 10 AND c.id_commune NOT IN (SELECT atl_commune_id_commune FROM atl_exclusion_commune WHERE year_exclusion_commune BETWEEN ('$date_debut') AND('$date_fin'))
une idée ??
A++
Clanou01








Répondre avec citation






Partager