我是MySQL的新手。
我想创建一个触发器,将投标表中的成本与bid_request表进行比较,如果投标表中的成本大于bid_request表中的成本,则会在KPI表中给出静态分数。
招标表(编号,名称,费用)
投标请求表(ID,名称,估计成本,供应商ID,投标ID)
KPI表(ID,成本)
供应商绩效(KPI_ID,投标ID,投标请求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
最佳答案
如果您需要基于两个表的查询,则应使用联接,例如:
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