Обновить записи в запросе выбора с другими значениями - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть запрос INSERT INTO, который прекрасно работает для создания дочерних записей при добавлении родительской записи.Мне нужно выполнить то же самое, но вместо добавления новых дочерних записей мне нужно обновить столбец, содержащий значение суммы.

В качестве примера у меня есть следующие данные.Shift_Roster_ID - это PK для первой таблицы.RosterID и ShiftID являются внешними ключами.Для ShiftID = 1 я хочу обновить ShiftCount для каждого уникального RosterID.ShiftCount - это сумма значений Ответа для любого сдвига, для которого PeriodID во второй таблице соответствует PeriodID с ShiftID = 1.

+-----------------+----------+---------+------------+----------+
| Shift_Roster_ID | RosterID | ShiftID | ShiftCount | Response |
+-----------------+----------+---------+------------+----------+
| 1               | 1        | 1       | 0          | 1        |
+-----------------+----------+---------+------------+----------+
| 2               | 2        | 1       | 0          | 3        |
+-----------------+----------+---------+------------+----------+
| 3               | 3        | 1       | 0          | 8        |
+-----------------+----------+---------+------------+----------+
| 4               | 1        | 2       | 0          | 1        |
+-----------------+----------+---------+------------+----------+
| 5               | 2        | 2       | 0          | 8        |
+-----------------+----------+---------+------------+----------+
| 6               | 3        | 2       | 0          | 7        |
+-----------------+----------+---------+------------+----------+
| 7               | 1        | 2       | 0          | 7        |
+-----------------+----------+---------+------------+----------+
| 8               | 2        | 3       | 0          | 7        |
+-----------------+----------+---------+------------+----------+
| 9               | 3        | 3       | 0          | 6        |
+-----------------+----------+---------+------------+----------+

+---------+----------+
| ShiftID | PeriodID |
+---------+----------+
| 1       | 1        |
+---------+----------+
| 2       | 1        |
+---------+----------+
| 3       | 2        |
+---------+----------+

Результат должен быть

+-----------------+----------+---------+------------+----------+
| Shift_Roster_ID | RosterID | ShiftID | ShiftCount | Response |
+-----------------+----------+---------+------------+----------+
| 1               | 1        | 1       | **2**      | 1        |
+-----------------+----------+---------+------------+----------+
| 2               | 2        | 1       | **11**     | 3        |
+-----------------+----------+---------+------------+----------+
| 3               | 3        | 1       | **15**     | 8        |
+-----------------+----------+---------+------------+----------+
| 4               | 1        | 2       | 0          | 1        |
+-----------------+----------+---------+------------+----------+
| 5               | 2        | 2       | 0          | 8        |
+-----------------+----------+---------+------------+----------+
| 6               | 3        | 2       | 0          | 7        |
+-----------------+----------+---------+------------+----------+
| 7               | 1        | 2       | 0          | 7        |
+-----------------+----------+---------+------------+----------+
| 8               | 2        | 3       | 0          | 7        |
+-----------------+----------+---------+------------+----------+
| 9               | 3        | 3       | 0          | 6        |
+-----------------+----------+---------+------------+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...