J'ai cinq tables de stockage des installations, les employés, les unités complétées, les projets et les équipes.Complexe MYSQL choisir parmi 5 tables
Je dois déterminer la productivité (nombre total d'heures complètes et cumulatives) d'un projet dans chaque installation, si l'installation a des heures d'ouverture de session sur le projet. L'installation est stockée dans la table des employés.
Voici ma structure de table, (réduite aux champs nécessaires à cette question):
facilities
+------------+
| id |
+------------+
| label |
+------------+
employees
+------------+
| id |
+------------+
| facility |
+------------+
completes
+------------+
| id |
+------------+
| project |
+------------+
| completes |
+------------+
| employee |
+------------+
projects
+------------+
| id |
+------------+
| title |
+------------+
shifts
+------------+
| id |
+------------+
| project |
+------------+
| length |
+------------+
| employee |
+------------+
Là où je suis en cours d'exécution en difficulté est la sélection de la productivité pour une installation, lorsqu'il est stocké avec l'employé, non avec le décalage ou le nombre de finitions. Peut-être que c'est un défaut de conception? Est-ce que le tableau des changements et des remplacements devrait aussi contenir une colonne de service? Il semble redondant d'avoir une colonne de facilité, quand l'employé détermine déjà l'installation.
SELECT p.title, SUM(c.completes), SUM(s.length)
FROM projects as p
LEFT JOIN completes as c ON c.project = p.id
LEFT JOIN shifts as s ON s.project = p.id
GROUP BY p.id, shifts.employee.facility;
Cette instruction GROUP BY n'est bien sûr pas valide. Mais cela démontre ce que je veux accomplir. Je voudrais également sélectionner l'étiquette de l'installation dans la déclaration. Comment puis-je aborder cela?
Merci d'avance pour toute idée que vous pouvez fournir!