我是MySQL新手。
我想创建一个触发器,将招标表中的成本与tender_request表进行比较,如果招标表中的成本大于tender_request表中的成本,则会在KPI表中给出静态分数。
招标表(身份证,姓名,费用)tender_request表(ID,Name,Estimated_cost,supplier_ID,tenderID)
KPI表(ID,费用)
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 :(得分: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