我正在尝试基于另一个表的SUM查询更新Mysql表。 我回来了#34;未知专栏&#t; t2.part_number'在' on''"
这是我的查询
UPDATE Dream t1 JOIN
(
SELECT SUM(`t2`.`Sales_1_Month_Prior`)+SUM(`t2`.`Sales_2_Month_Prior`)+SUM(`t2`.`Sales_3_Month_Prior`)+SUM(`t2`.`Sales_4_Month_Prior`)+SUM(`t2`.`Sales_5_Month_Prior`)+SUM(`t2`.`Sales_6_Month_Prior`)+SUM(`t2`.`Sales_7_Month_Prior`)+SUM(`t2`.`Sales_8_Month_Prior`)+SUM(`t2`.`Sales_9_Month_Prior`)+SUM(`t2`.`Sales_10_Month_Prior`)+SUM(`t2`.`Sales_11_Month_Prior`)+SUM(`t2`.`Sales_12_Month_Prior`) as Total
FROM saleshistory t2
WHERE location = '98'
) t2
ON `t1`.`Part_Number` = `t2`.`part_number`
SET `t1`.`ETAUsage` = `t2`.`Total`
答案 0 :(得分:1)
您不在子查询中选择Part_Number以加入条件
所以例如:尝试选择(并分组以获得正确的总和结果)
UPDATE Dream t1
JOIN
(
SELECT `t2`.`Part_Number`,
SUM(`t2`.`Sales_1_Month_Prior`)+
SUM(`t2`.`Sales_2_Month_Prior`)+
SUM(`t2`.`Sales_3_Month_Prior`)+
SUM(`t2`.`Sales_4_Month_Prior`)+
SUM(`t2`.`Sales_5_Month_Prior`)+
SUM(`t2`.`Sales_6_Month_Prior`)+
SUM(`t2`.`Sales_7_Month_Prior`)+
SUM(`t2`.`Sales_8_Month_Prior`)+
SUM(`t2`.`Sales_9_Month_Prior`)+
SUM(`t2`.`Sales_10_Month_Prior`)+
SUM(`t2`.`Sales_11_Month_Prior`)+
SUM(`t2`.`Sales_12_Month_Prior`) as Total
FROM saleshistory t2
WHERE location = '98'
group by `t2`.`Part_Number`
) t3
ON `t1`.`Part_Number` = `t3`.`part_number`
SET `t1`.`ETAUsage` = `t3`.`Total`
答案 1 :(得分:-1)
在“on子句”中,t2不是指“saelshistory”表,而是指使用saleshistory上的select查询创建的临时表。
为了能够引用part_number,必须先选择它然后在group by中使用,这会改变总数,但看起来你需要part_number的聚合,无论如何, 外表别名t2应该像
SELECT part_number, SUM(....
FROM saleshistory
GROUP BY part_number
答案 2 :(得分:-2)
您可以通过作为part_number
在子查询中更改为总计来解决此问题