Condition avec calcul et jointure (SQL)
Klarann
-
Melooo Messages postés 1476 Statut Membre -
Melooo Messages postés 1476 Statut Membre -
Bonjour,
voila j'aimerais faire la chose suivante, voici les tables concernées
categories : id,duree_vie,nom
documents : id,nom,creation,categorie,carton
je cherche à joindre les deux tables et à afficher la liste des cartons dont tous les documents sont arrivés à expiration (creation + duree_vie)
SELECT DISTINCT(carton)
FROM documents a, categories b
WHERE a.categorie = b.id
AND (a.creation + b.duree_vie) <= 2012 (année en cours)
cette requête m'affiche les cartons dont au moins un correspond à mon critère mais je cherche à faire en sorte d'afficher uniquement les cartons dont tous les documents correspondent aux critères.
En espérant avoir été clair, merci à tout ceux qui tenteront de me répondre
voila j'aimerais faire la chose suivante, voici les tables concernées
categories : id,duree_vie,nom
documents : id,nom,creation,categorie,carton
je cherche à joindre les deux tables et à afficher la liste des cartons dont tous les documents sont arrivés à expiration (creation + duree_vie)
SELECT DISTINCT(carton)
FROM documents a, categories b
WHERE a.categorie = b.id
AND (a.creation + b.duree_vie) <= 2012 (année en cours)
cette requête m'affiche les cartons dont au moins un correspond à mon critère mais je cherche à faire en sorte d'afficher uniquement les cartons dont tous les documents correspondent aux critères.
En espérant avoir été clair, merci à tout ceux qui tenteront de me répondre
3 réponses
-
-
en fait la requête de mon premier message affiche tous les cartons dont au moins un est arrivé à expiration, cependant je souhaite afficher les cartons dont tous les documents sont arrivé à expiration.
l'année d'expiration est calculé par la date de création + la durée de vie .
Exemple mon document est créé en 2005, la durée de vie de la catégorie est de 2 ans, l'année d'expiration est donc 2007.
Est ce que c'est plus clair? -
non j'ai bien vérifier il m'affiche les cartons dont au moins une entrée correspond au critère et ce que je cherche c'est que tous correspondent
-
-
dans la requête que je donne par exemple j'ai trois cartons qu'on va appelé carton A,carton B et carton C. dans le carton A il y a deux documents qui sont arrivé à expiration ( année de création + durée de vie inférieure ou égale à l'année en cours) ,dans le carton B un des documents est arrivé à expiration et l'autre non. et dans le carton C aucun documents n'est arrivé à expiration.
Avec ma requête les cartons A et B apparaissent, cependant moi je voudrai sélectionner uniquement le carton A -
-
-
-