Je suis à la recherche d'un moyen de regrouper les données par statut. J'ai cela avec une sélection simple, juste pour la démonstration:SQL Group By statut
MS SQL Server 2014 Configuration du schéma:
CREATE TABLE Projects ([ID] int, [Project] varchar(10));
INSERT INTO Projects ([ID], [Project])
VALUES
(1, 'Admin'),
(2, 'Accounts'),
(3, 'Finance')
;
CREATE TABLE Tasks ([ID] int, [ProjectID] int, [Task] int, [Status] varchar(8));
INSERT INTO Tasks
([ID], [ProjectID], [Task], [Status])
VALUES
(1, 1, '001', 'Open'),
(2, 1, '002', 'Canceled'),
(3, 1, '003', 'Canceled'),
(4, 1, '004', 'Canceled'),
(5, 2, '005', 'Rejected'),
(6, 2, '006', 'Canceled'),
(7, 2, '007', 'Canceled'),
(8, 3, '008', 'Canceled'),
(9, 3, '009', 'Canceled'),
(10, 3, '010', 'Canceled'),
(11, 3, '011', 'Canceled'),
(12, 3, '0012', 'Rejected')
;
Requête 1:
SELECT
Projects.Project,
COUNT(Tasks.Status) AS Total
FROM
Projects
LEFT JOIN Tasks ON Projects.ID = Tasks.ProjectID
GROUP BY
Projects.Project
| Project | Total |
|----------|-------|
| Accounts | 3 |
| Admin | 4 |
| Finance | 5 |
Mais je suis à la recherche d'un moyen de sortie ceci:
| Project | Open | Canceled | Rejected |
|----------|------|----------|----------|
| Admin | 1 | 3 | |
| Accounts | | 2 | 1 |
| Finance | | 4 | 1 |
Les groupes de résultats souhaités du du projet par Tâches Statut. Comment puis-je faire ceci? Merci.
Vérifiez les réponses à cette question, https://stackoverflow.com/questions/1241178/mysql-rows-to-columns, il devrait vous aider à composer votre propre problème – Floaterz