【发布时间】:2016-01-25 13:37:54
【问题描述】:
我在tableB上显示了一个每天的“金额”:
我想计算 tableA 中每个“Description”(总共 5 个)的数量:
所以,我的公式应该是:
tableA.Amount = tableB.Amount * tableA.Numbers / sum(tableA.Numbers)
where tableA.date = tableb.date
group by tableA.Description
在 mySQL 中我使用的是这段代码:
update tableA
join tableB
on tableB.date = tableA.date
set tableA.amount = tableB.amount * (select tableA.Numbers from tableA group by tableA.date, tableA.Description) / sum(tableA.Impressions)
where tableA.campaign = 'Autumn'
;
但它不起作用。
【问题讨论】:
-
它不起作用?请提供更多信息,例如查询中的语法错误。语法对我来说看起来很奇怪。您是如何找到此查询的??
-
@Pieter21 错误代码:1093。您不能在 FROM 子句中指定目标表 'tableA' 进行更新
-
我认为您的内部查询会导致简单的更新语句过于复杂(如分组记录列表)。我认为它又回到了绘图板上。
标签: mysql select join sql-update