【发布时间】:2017-08-07 18:39:32
【问题描述】:
为什么这不是工作人员?
我有一个 'invoiceID' = 70372,在表 'invoiceitems' 中有多个 'item' 行
发票“item”还包含“total”和“subtotal”,在这种情况下,两者的值相同。
其中一些“项目”包含文本“欧元”(因此有 %LIKE% 子句)
所以这就是我需要做的... WHERE 'invoiceID' = 70372 AND 'item' LIKE '%EUR%' .... 我想将 'description'、'subtotal'、'total' 列设置为货币换算金额。
转化率为:0.886021
我正在尝试做 SUM(total*0.886021)
我正在尝试使用以下 MYSQL 语句执行货币转换更新。
我已经设置了包含字符串文本的变量,因为它们需要构成设置到描述列中的字符串的一部分。
我确实有发票“项目”,名称文本中有“%EUR%”,该查询在其中形成了 where 子句。因此使用 LIKE '%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 子句中有一个组函数(sum),但没有分组。你想用它做什么?
-
您是否要更新
invoice,并在每张发票上附加invoiceitem记录的总和?你忘记加入了吗? -
此更新语句仅适用于 ONE 表。
-
我在上面添加了更多信息,让我知道它是否更有意义?