MYSQL UPDATE与MULTIPLE SET和WHERE子句和SUM函数

时间:2017-08-07 18:39:32

标签: mysql sum set where

为什么不是这个工作人员?

我有一个' invoiceID' = 70372,多个'项目'表格中的行' invoiceitems'

发票'项目'还包含一个'总计'和一个'小计'在这种情况下,两者都是相同的值。

其中一些'项目'包含文字' EUR' (因此%LIKE%条款)

所以这就是我需要做的...... 在哪里' invoiceID' = 70372 AND' item'喜欢'%EUR%' ....我想设置'描述',' subtotal',' total'列到货币转换金额。

转换率为:0.886021

我试图做SUM(总计* 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%'

1 个答案:

答案 0 :(得分:1)

我解决了......这对你有用。

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理解。

相关问题