Я застрял, делая проект для школьного банкомата.и учителя едва объяснили нам SQL.
Итак, у меня есть простая таблица:
CREATE TABLE `VINOVOLUPTATEM`.`TimeWorked`
(
`TimeID` INT NOT NULL AUTO_INCREMENT,
`MNr` INT NOT NULL,
`Start` TIMESTAMP NOT NULL,
`End` TIMESTAMP NULL,
`TotalTime` DOUBLE NULL,
PRIMARY KEY (`TimeID`),
FOREIGN KEY (MNr) REFERENCES employees (MNr)
);
Таблица предназначена для отслеживания рабочего времени всех сотрудников.
Если я пытаюсь ввести данные в таблицу, используя это:
INSERT INTO TimeWorked (MNr, Start, End, TotalTime)
VALUES (0002,'2019-06-30 08:30:00', '2019-06-30 17:00:00', '8.5');
Это прекрасно работает, но когда я пытаюсь автоматизировать "TotalTime", используя это:
INSERT INTO TimeWorked (MNr, Start, End, TotalTime)
VALUES (0001,'2019-06-30 15:00:00', '2019-06-30 18:30:00',
(TIMESTAMPDIFF(HOUR,(SELECT Start FROM TimeWorked WHERE TimeID = (SELECT MAX(TimeID) FROM TimeWorked)) ,
(SELECT End FROM (SELECT End FROM TimeWorked WHERE TimeID = (SELECT MAX(TimeID) FROM TimeWorked)) AS End)
)));
Я сохраняюполучая ошибку:
Код ошибки: 1093. Вы не можете указать целевую таблицу 'arbeitszeit' для обновления в предложении FROM
Я уже посмотрел другие посты здесь ипохоже, что это связано с ограничениями подзапроса MySQL.И все же я не могу найти свою ошибку здесь.
Что мне нужно сделать, чтобы исправить запрос?
Примечание. Я перевел части имен на английский, чтобы упростить его.Имена в реальной таблице не представляют собой каких-либо утверждений.