Реальное приложение более сложное, но вот упрощенная версия того, что я пытаюсь выполнить.
У меня есть таблица, которая содержит значения, которые необходимо суммировать (ResponseValue) для каждого человека (Staff_ID) Таблица A
+----------+-----------+---------------+
| Staff_ID | OT_Period | ResponseValue |
+----------+-----------+---------------+
| 4 | 4 | 1 |
+----------+-----------+---------------+
| 6 | 4 | 1 |
+----------+-----------+---------------+
| 8 | 4 | 1 |
+----------+-----------+---------------+
| 2 | 4 | 1 |
+----------+-----------+---------------+
| 1 | 4 | 1 |
+----------+-----------+---------------+
| 11 | 4 | 1 |
+----------+-----------+---------------+
| 13 | 4 | 0 |
+----------+-----------+---------------+
| 45 | 4 | 1 |
+----------+-----------+---------------+
| 57 | 4 | 1 |
+----------+-----------+---------------+
| 63 | 4 | 1 |
+----------+-----------+---------------+
| 1 | 4 | 1 |
+----------+-----------+---------------+
| 2 | 4 | 1 |
+----------+-----------+---------------+
| 4 | 4 | 1 |
+----------+-----------+---------------+
| 6 | | |
+----------+-----------+---------------+
| 8 | 4 | 1 |
+----------+-----------+---------------+
| 11 | 4 | 1 |
+----------+-----------+---------------+
| 13 | 4 | 1 |
+----------+-----------+---------------+
| 45 | 4 | 1 |
+----------+-----------+---------------+
| 57 | 4 | 1 |
+----------+-----------+---------------+
| 63 | 4 | 0 |
+----------+-----------+---------------+
У меня есть вторая таблица, которая содержит значение корректировки для каждого Staff_ID и OT_Period. Таблица B
+----------+-----------+------------+
| Staff_ID | OT_Period | Adjustment |
+----------+-----------+------------+
| 1 | 4 | 2 |
+----------+-----------+------------+
| 11 | 4 | 1 |
+----------+-----------+------------+
| 13 | 4 | 0 |
+----------+-----------+------------+
| 45 | 4 | 5 |
+----------+-----------+------------+
| 57 | 4 | 4 |
+----------+-----------+------------+
| 63 | 4 | 2 |
+----------+-----------+------------+
Мой запрос MySQL успешно суммирует значения в первомтаблицы в столбец с именем «ShiftCount», но ShiftCount переходит к нулю, когда я пытаюсь добавить к нему значение корректировки.
Ожидаемый результат будет
+----------+------------+
| Staff_ID | ShiftCount |
+----------+------------+
| 1 | 4 |
+----------+------------+
| 2 | 2 |
+----------+------------+
| 4 | 2 |
+----------+------------+
| 6 | 1 |
+----------+------------+
| 8 | 2 |
+----------+------------+
| 11 | 3 |
+----------+------------+
| 13 | 1 |
+----------+------------+
| 45 | 7 |
+----------+------------+
| 57 | 6 |
+----------+------------+
| 63 | 3 |
+----------+------------+
Мой рабочий запрос для получениясумма равна
SELECT a.Staff_ID, a.OT_PeriodID, COALESCE(SUM(ResponseValue),0) AS ShiftCount
FROM TableA a
GROUP BY a.Staff_ID
Я попробовал следующее, и все значения ShiftCount обнуляются
SELECT a.Staff_ID, a.OT_PeriodID, COALESCE(SUM(ResponseValue),0)+Adjustment AS ShiftCount
FROM TableA a
LEFT JOIN TableB b
ON a.Staff_ID=b.Staff_ID
GROUP BY a.Staff_ID
Чего мне не хватает? Спасибо!