Я столкнулся с огромной проблемой! Я сотрудник полиции в центральном полицейском управлении в Афинах, Греция, и я пытаюсь создать базу данных, которая будет автоматически создавать графики работы примерно для 200-300 полицейских каждый день.
Я создал 3 таблицы:
A) Таблица, содержащая всю информацию о 300 офицерах с их ID (в качестве первичного ключа, который связан с | таблицей C ") и другую информацию, такую как адрес, когда они были переданы нам и т. Д. Назовите ее" Таблица A "
Б) Стол со всеми возможными местами, которые могут понадобиться офицерам.
Например, запись в столбце A [NOT THE HEADER]: «Полицейские патрули», столбец B: «количество людей, которых мы отправим в эту службу», для которых я создал запрос (с таблицей подсчета, чтобы он мог повторять столько записей как я хочу, например, если мне нужно 30 человек для патрулирования, он создаст 30 уникальных записей этой службы в таблице C, а также я установил ввод для даты, чтобы он мог автоматически вводить дату в таблицу C.
C) Таблица C: Здесь у меня есть информация, такая как все службы, которые были созданы запросом с рабочим временем, а также столбец идентификатора сотрудника, который будет назначен на конкретное место.
Теперь я застрял, пытаясь обновить со случайной последовательностью таблицу C, в частности столбец идентификационного номера, с помощью столбца идентификационного номера всех сотрудников полиции из таблицы А. (Я не дошел до случайной части только тем не менее, каждый раз, когда я обновляю Таблицу C, он получает только идентификатор из первой записи из Таблицы A, игнорируя все остальные записи, поэтому он помещает один и тот же номер идентификатора в 30 необходимых мне мест и не показывает все записи из Таблица А)
WHERE (((TableC.DateofDuty)=[Date]));
Я попробовал это безуспешно, поскольку для каждой записи в таблице C он получает тот же идентификатор из таблицы A.
Также я попробовал это:
UPDATE TableC LEFT OUTER JOIN TableA ON TableC.ID= TableA.ID
SET TableC.ID = TableA.ID
WHERE (((TableC.DateofDuty)=[Date]));
UPDATE TableC SET TableC.ID= TableA.ID
WHERE (((TableC.DateofDuty)=[Date]));
или
UPDATE TableC LEFT OUTER JOIN TableA ON TableC.ID= TableA.ID
SET TableC.ID = TableA.ID
WHERE (((TableC.DateofDuty)=[Date]));
В первой строке кода обновляются все записи, которые я хотел обновить, но с тем же идентификатором. Во второй записи он спрашивает, хочу ли я заполнить конкретную, скажем, 100, места, которые я хочу, я нажимаю да, и идентификатор не обновляется.
Я тоже попробовал Inner Join без удачи
Я бы очень признателен за вашу помощь
Редактировать: я только что заметил, что мое сообщение было помечено как недостаточное, поэтому
я добавлю еще детали
Это таблица должна быть заполнена / обновлена:
ТАБЛИЦА С
Service Duty Date ID
ΜΕΤΑΓΩΓΕΣ 24/06/2019
ΜΕΤΑΓΩΓΕΣ 24/06/2019
ΜΕΤΑΓΩΓΕΣ 24/06/2019
Из таблицы A
(Primary ID) Police Rank
250311 ΤΑΞΙΑΡΧΟΣ
288066 ΑΡΧΙΦΥΛΑΚΑΣ
288076 ΑΣΤΥΦΥΛΑΚΑΣ
До сих пор я использовал следующий код
UPDATE [TABLE C] INNER JOIN [TABLE A] ON [[TABLE C].ID = [TABLE A].ID
SET [TABLE C].ID= [TABLE A].ID
WHERE ((([TABLE A].DATE)=[INPUT DATE]));
Что обновляет 0 строк, хотя я ввожу правильную дату на входе (24/06/2019)
Я даже поставил 01.01.2009 просто чтобы убедиться, что это не вход, вызывающий проблему
Вторая попытка:
UPDATE [TABLE C] Left JOIN [TABLE A] ON [[TABLE C].ID = [TABLE A].ID
SET [TABLE C].ID= [TABLE A].ID
WHERE ((([TABLE A].DATE)=[INPUT DATE]));
, который побуждает меня обновить все 3 записи, но ничего не обновляет, поэтому, хотя он говорит, что собирается обновить, он не делает.
Третья попытка
UPDATE [TABLE C] Right JOIN [TABLE A] ON [[TABLE C].ID = [TABLE A].ID
SET [TABLE C].ID= [TABLE A].ID
WHERE ((([TABLE A].DATE)=[INPUT DATE]));
Но он возвращает 0 записей ...
4-я попытка
У меня есть только ТАБЛИЦА C
UPDATE [TABLE C] SET [TABLE C].ID= "Random Text"
WHERE ((([TABLE C].Date)=[input date]));
Который обновляет идентификатор даты, которую я вставил во входные данные, до «Случайного текста»
Но как только я возвращаю Таблицу A обратно в игру, она возвращает 0 значений
Я буду продолжать пытаться, пока я это выясню. Я уверен, что это должно быть что-то действительно глупое, что я упускаю.