У меня есть база данных с именем SCORPADData и две таблицы: Parts и Failure_Rates. Я пытаюсь взять столбец Reparable в таблице Parts и установить его как логическое значение на основе значения в таблице коэффициентов осуждения, которое находится где-то между 0 и 100.0. Коэффициент осуждения 100,0 означает, что деталь не может быть отремонтирована.
Я делаю это, потому что меня попросили взять одну базу данных и сделать ее читаемой для программного обеспечения, которое первоначально считывало другую в обновлении. Я пытался сделать это двумя разными способами: используя Case и используя Where с установленным значением false. Заявления перечислены ниже.
UPDATE SCORPADData.Parts
SET Reparable = CASE
WHEN SCORPADData.Failure_Rates.Part_ID = SCORPADData.Parts.ID AND SCORPADData.Failure_Rates.Condemnation_Rate = 100.0
THEN 'TRUE'
ELSE 'FALSE'
END
FROM SCORPADData.Parts , SCORPADData.Failure_Rates
Я получаю сообщение об ошибке: «Столбец SCORPADDATA.FAILURE_RATES.CONDEMNATION_RATE не найден».
UPDATE SCORPADDATA.PARTS
SET REPARABLE = TRUE
UPDATE SCORPADDATA.PARTS
SET REPARABLE = FALSE
FROM SCORPADDATA.FAILURE_RATES
WHERE SCORPADDATA.PARTS.ID = SCORPADDATA.FAILURE_RATES.PART_ID
AND SCORPADDATA.FAILURE_RATES.CONDEMNATION_RATE = 100.0
Я получаю здесь ошибку синтаксиса; мне не нравится мое размещение ОТ. Размещение его после WHERE также не работает, потому что он не находит столбец.
В обоих случаях я думаю, что FROM не работает, как я надеялся, потому что таблица FAILURE_RATES не используется в операторе UPDATE SET. Я работаю с базой данных H2 в приложении Java. Я новичок в SQL, поэтому приношу свои извинения, если это то, что я должен знать, но поиск в Google (или SO) таких слов, как WHERE и FROM, никого не находит.