J'ai essayé de simplifier cela autant que possible avec des données d'échantillonnage simples. J'ai une table appelée missions et une table appelée Tâches:
Dans l'état de la tâche, 1 signifie pas complet et 2 signifie complet. p> pour chaque affectation, des tâches connexes. Je veux obtenir un nombre de toutes les tâches où toutes les tâches associées sont complètes (Task_Status = 2) (dans mon cas d'utilisation réelle, répondant également à un groupe d'autres critères, mais qui est en dehors de cet échantillon.) P > Donc, dans cet exemple, la réponse doit être Je ne veux pas savoir combien de tâches sont complètes ou combien d'affectations ont été démarrées, à savoir combien d'affectations sont complètes à 100%. P> J'ai essayé de plusieurs manières Mais je frappe un bloc mental ... p> Cela me donnera toutes les tâches où il existe une tâche remplie em> p> cela me donnera également toutes les tâches où il existe une tâche remplie em> p> mais je veux où toutes les tâches fortes> sont complets. (juste un compte de combien de personnes sont terminées, pas une liste de tous les résultats.) strong> p> Cela donnera le nombre de résultats (en rangées résultantes, que je pourrait compter), mais j'ai besoin de la valeur dans la requête (pour effectuer d'autres calculs avec) em> p> le nombre de résultats est égal au total em > p> toutes idées? strong> p> p>
4 Réponses :
Vous pouvez utiliser apprécier l'effort, mais je cherche un nombre de complets, pas une liste p>
blockQuote> tout dénombrer = cas de comptage lorsque Status = 2 code> pour le faire.
MISE À JOUR: H3>
| completedCount |
| -------------: |
| 2 |
S'il n'y a pas Si vous n'avez besoin que de l'identifiant de l'affectation, vous n'avez pas besoin du tableau Si vous souhaitez le nombre de ces affectations: p> Voir le Demo . null code> s dans
Task_Status code> de
des tâches code> puis rejoindre et
groupe par attribution_id code> et définissez le Condition dans le
ayant code> Clause:
affectations code>: p>
P> P>
Appréciez l'effort, mais je cherche un compte acheté, pas une liste ...
Au lieu de rejoindre et d'agréger, vous pouvez filtrer avec un avec un index sur la tâche Si vous souhaitez la liste d'affectation, vous pouvez remplacer Compte: P> < Pré> xxx pré> détails: p> n'existe pas code> condition et une sous-requête corrélée qui garantit qu'il n'y a pas d'enregistrement dans la table code> Tableau code> avec un statut autre que
2 code>:
(assignation_id, task_status) code>, cela devrait être une option efficace. P>
compter (*) code> avec
* code>. p>
a reçu de bonnes réponses (et acceptées une), mais n'a pas pu obtenir de leurs méthodes pour donner la bonne réponse avec le reste de ma requête. Pour une référence future, voici ce que j'ai fini avec: Cela pourrait ne pas être le plus efficace, mais je suis capable d'obtenir la bonne réponse avec elle dans ma situation ... p> p>