【问题标题】:MYSQL UPDATE with MULTIPLE SET and WHERE clauses AND SUM FUNCTIONSMYSQL UPDATE 与 MULTIPLE SET 和 WHERE 子句和 SUM FUNCTIONS
【发布时间】: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 表。
  • 我在上面添加了更多信息,让我知道它是否更有意义?

标签: mysql sum set where


【解决方案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的理解。

【讨论】:

    猜你喜欢
    • 2012-11-20
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多