MySQL Trigger для сравнения 2 значений из разных таблиц

0

Я новичок в MySQL.

Я хочу создать триггер, который сравнивает стоимость в тендерной таблице с таблицей tender_request, если стоимость в тендерной таблице больше стоимости в таблице tender_request, даст статическую оценку в таблице KPI.

тендерная таблица (ID, имя, стоимость)

Тендерная таблица (ID, Имя, Оценочная стоимость, поставщик_ID, тендер)

Таблица KPI (идентификатор, стоимость)

supplier_performance (KPI_ID, tender_ID, tender_request_ID)

Я получаю следующую ошибку, когда я вставляю строку в таблицу запроса:

#1054 - Unknown column 'tender_request.TenderID' in 'where clause' 

Как исправить ошибку синтаксиса?

BEGIN
SET  @Ecost=(SELECT 'estimated_cost' FROM tender where 'tender'.'Tender_ID'='tender_request'.'TenderID');

SET  @cost=(SELECT 'cost' FROM tender_request where 'tender'.'Tender_ID'='tender_request'.'TenderID');


IF(@Ecost>@cost)  then
 UPDATE 'kpi' set kpi.Cost=10 WHERE 'kpi'.KPI_ID='supplier performance'.KPIID 
and 'supplier performance'.TenderID=tender.Tender_ID ;
     END IF;
    END
  • 0
    Я всегда ожидаю увидеть НОВОЕ. и / или СТАРЫЙ. Переменные в триггере.
Теги:
triggers

1 ответ

0

Если вам нужен запрос на основе двух таблиц, вы должны использовать соединение, например:

  SELECT 'estimated_cost' 
  FROM tender
  INNER JOIN tender_request ON 'tender'.'Tender_ID'='tender_request'.'TenderID'

или же

  SELECT 'cost' 
  FROM tender_request 
  INNER JOIN tender ON  'tender'.'Tender_ID'='tender_request'.TenderID
  • 0
    Я получаю следующую ошибку # 1242 - Подзапрос возвращает более 1 строки
  • 0
    удаленный запрос, который возвращает 2 столбца .. был только предложением, которое не может быть назначено одному var ... в любом случае, ваша проблема связана с отсутствующим объединением в select, как в обоих запросах выше
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню