Так что я вроде как разобрался с ответом на мой предыдущий пост о том, как обновлять - заполнить базу данных: " Как обновить-заполнить пустые поля в таблице A значениями из B со случайной последовательностью"
Теперь проблема, с которой я сталкиваюсь, заключается в том, что добавляемый запрос умножает данные друг на друга и не объединяет их, чтобы дать мне результаты, которые я хочу
Более конкретно, у нас есть:
TABLEA
ID | POLICE RANK | FULL NAME |
____________________________________
288066 | Const. | Chris Meli |
273111 | Serg. | John Do |
231444 | Const. | Bill Park |
298432 | Const. | Joe Park |
_____________________________________
, который содержит информацию о сотрудниках полиции и связан с полем ID в TableC , поэтому даже из соединения в TableA вы можете проверить обязанности, которые были назначены каждому сотруднику предыдущие дни.
TABLEB
DUTY | Number of Police needed |
| for each service |
____________________________________
Patrol | 1 |
Guards | 1 |
Courts | 2 |
____________________________________
Я поставил цифры 1 и 2 ради простоты. Обычно TableA будет содержать более 250 человек , а на TableB будет много Обязанности , и количество необходимой полиции будет варьироваться в зависимости от дата и многие другие факторы.
TABLEC
ID | DUTY | DATE |
____________________________________
| | |
| | |
| | |
| | |
_____________________________________
TableC будет заполняться из таблиц A (ID), TableB (Duty) и ввода для даты, которую я буду планировать, с помощью следующего добавляемого запроса
INSERT INTO TABLEC ( DUTY, DATE, ID )
SELECT TABLEB.DUTY, [INPUT DATE], TABLEA.ID
FROM TABLEA, TABLEB INNER JOIN n ON n.n <= TABLEB.[Number of Police needed for each service];
(n - это таблица чисел, а n.n - это столбец, в котором примерно 10000 чисел, поэтому не обращайте на это внимания)
Теперь добавляемый запрос возвращает мне результаты, которые мне нужны, но в результате получается, что умножает позицию, необходимую на ID офицера. Так что вместо этого:
TABLEC
ID | DUTY | DATE |
____________________________________
288066 | Patrol | 23/06/2019 |
273111 | Guards | 23/06/2019 |
231444 | Courts | 23/06/2019 |
298432 | Courts | 23/06/2019 |
_____________________________________
У меня есть это:
TABLEC
ID | DUTY | DATE |
____________________________________
288066 | Patrol | 23/06/2019 |
288066 | Guards | 23/06/2019 |
288066 | Courts | 23/06/2019 |
288066 | Courts | 23/06/2019 |
273111 | Patrol | 23/06/2019 |
273111 | Guards | 23/06/2019 |
273111 | Courts | 23/06/2019 |
273111 | Courts | 23/06/2019 |
231444 | Patrol | 23/06/2019 |
231444 | Guards | 23/06/2019 |
231444 | Courts | 23/06/2019 |
231444 | Courts | 23/06/2019 |
298432 | Patrol | 23/06/2019 |
298432 | Guards | 23/06/2019 |
298432 | Courts | 23/06/2019 |
298432 | Courts | 23/06/2019 |
_____________________________________
Есть ли способ соединить TableA.ID и TableB.DUTY без автоматического умножения?