为什么这个不上班的人呢?

我在表'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的理解。

10-06 03:41