为什么这个不上班的人呢?
我在表'invoiceitems'中有一个'invoiceID'= 70372,其中有多个'item'行
发票“项目”还包含“总计”和“小计”,在这种情况下,两者都是相同的值。
其中一些“项目”包含文本“ EUR”(因此,%LIKE%子句)
所以这就是我要做的...
其中“ invoiceID” = 70372和“项目”,例如“%EUR%”...。我想将“说明”,“小计”,“总计”列设置为货币换算的金额。
转换比率是:0.886021
我正在尝试做SUM(total * 0.886021)
我正在尝试使用以下MYSQL语句执行货币换算更新。
我已经设置了包含字符串文本的SET变量,因为它们需要形成要在description列中设置的字符串的一部分。
我确实在此查询where子句形成的名称文本中带有带有'%EUR%'的发票'items'。因此,像“%EUR%”子句。
任何帮助将不胜感激。目前,此确切查询引发以下错误;
1111-无效使用组功能
SET @euroequals = ' Euro equals';
SET @britishpound = ' British Pound';
UPDATE invoiceitem
SET description = CONCAT(total,@euroequals,SUM(total*0.886021),@britishpound),
subtotal = SUM(total*0.886021),
total = SUM(total*0.886021)
WHERE invoiceID = 70372 AND item LIKE '%EUR%'
最佳答案
我解决了...。
SET @euroequals = ' Euro equals';
SET @britishpound = ' British Pound';
UPDATE invoiceitem
SET description = CONCAT(total,@euroequals,(total*0.886021),@britishpound),
subtotal = (total*0.886021),
total = (total*0.886021)
WHERE invoiceID = 70372 AND item LIKE '%EUR%'
基本上,尝试使用SUM是导致问题的原因。那是我的业余错误,也是您对MYSQL的理解。