Приложенный запрос умножает данные друг на друга - PullRequest
0 голосов
/ 23 июня 2019

Так что я вроде как разобрался с ответом на мой предыдущий пост о том, как обновлять - заполнить базу данных: " Как обновить-заполнить пустые поля в таблице 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 без автоматического умножения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...