从一个表动态获取行并从其他表获取值将其汇总并插入到目标表中

时间:2014-02-23 09:49:50

标签: php mysql sql sql-server optimization

x表包含列(Agencydatac)<{1}}表包含列(YAgencyname)<登记/> 实施例

total

第一位客户添加Agency | datac NET | 100 GOO | 300 NET | 100 GOO | 100 Agencyname | total NET | GOO | 然后它会在表Agencyname上获得更新
从html的下拉菜单中,我已让用户选择YNET但我想要的是他们可以在表GOO中输入多少值。
我希望将X插入到表total sum中。所以我的预期输出看起来像这样

Y

3 个答案:

答案 0 :(得分:1)

最直接的方法可能是使用子查询进行更新;

UPDATE TableY
SET total = (SELECT SUM(datac) FROM TableX WHERE Agency=AgencyName)

An SQLfiddle to test with

答案 1 :(得分:1)

UPDATE Y
SET Y.total = X.Total
FROM TABLE_Y Y INNER JOIN 
                  (
                    SELECT Agency, SUM(datac) AS Total
                    FROM TABLE_X 
                    GROUP BY Agency
                  ) X
ON Y.Agencyname = X.Agency

SQL FIDDLE TEST

答案 2 :(得分:0)

SELECT agency, SUM(datac) FROM x GROUP BY agency

您希望将其与INSERT INTO结合使用。

虽然我在缓存这个易于计算的值时没有多大意义......