1. Постановка задачи
Мне трудно отобразить сумму COUNT()
в правильном ряду записи.
Как отобразить COUNT()
для соответствующей соответствующей службы, которая
2. Фон
Я хочу отобразить выходные данные, показывающие общее количество персонала, отвечающего за проект, на основе stage_id
и разбивки на project_name
.
Что я пытался / пытался
SELECT
B.employee_name,
B.project_name,
A.total
FROM
(
SELECT
COUNT( * ) AS total,
services.NAME AS project_name,
services.id AS service_id,
users.id AS member_id,
users.NAME AS member_name
FROM
users
LEFT JOIN projects ON users.id = projects.leader_id
LEFT JOIN services ON projects.service_id = services.id
WHERE
( projects.service_id IN ( 1, 5 ) AND projects.stage_id < 6 )
OR ( projects.service_id IN ( 2, 3, 4, 7 ) AND projects.stage_id < 7 )
GROUP BY
member_name,
service_id
) AS A
RIGHT OUTER JOIN (
SELECT
users.id AS user_id,
users.NAME AS employee_name,
services.NAME AS project_name,
services.id AS service_id
FROM
users,
services
) AS B ON A.service_id = B.user_id RIGHT OUTER JOIN ( SELECT users.id AS user_id, users.NAME AS user_name, services.NAME AS project_name, services.id AS service_id FROM users, services ) AS B ON A.service_id = B.user_id
Я использовал этот запрос для генерации вывода ниже
+-------+-------------------+------------------+-------------------+
| id | project_name | employee_name | total |
+-------+-------------------+------------------+-------------------+
| 1 | Projects A | Employee A | 2 |
| 2 | Projects B | Employee A | 2 |
| 3 | Projects A | Employee B | 3 |
| 4 | Projects B | Employee B | 3 |
| 5 | Projects A | Employee C | 1 |
| 6 | Projects B | Employee C | 1 |
| 7 | Projects A | Employee D | 2 |
| 8 | Projects B | Employee D | 2 |
+-------+-------------------+------------------+-------------------+
Общее количество присваивается в неправильном ряду записи.
3. SQL Fiddle
Это пример вывода, который я создал на SQL Fiddle.
http://www.sqlfiddle.com/#!9/08eff4/1/0
4. Ожидаемый результат
Я ожидаю, что общее количество может быть назначено для правильной строки записи.
Выходное ожидание
+-------+-------------------+------------------+-------------------+
| id | project_name | employee_name | total | (COUNT (*) AS total)
+-------+-------------------+------------------+-------------------+
| 1 | Projects A | Employee A | 2 |
| 2 | Projects B | Employee A | NULL |
| 3 | Projects A | Employee B | 3 |
| 4 | Projects B | Employee B | NULL |
| 5 | Projects A | Employee C | 1 |
| 6 | Projects B | Employee C | NULL |
| 7 | Projects A | Employee D | 2 |
| 8 | Projects B | Employee D | NULL |
+-------+-------------------+------------------+-------------------+
У меня заканчиваются идеи для достижения ожидаемого результата.
Поэтому я хотел бы обратиться за помощью к экспертам на этом форуме.