【问题标题】:SQL Update Query to update a table with aggregate value from another table using multiple fieldsSQL 更新查询以使用多个字段从另一个表中更新具有聚合值的表
【发布时间】:2015-09-06 00:43:43
【问题描述】:

我有一个表 A,其中包含不同的姓名、部门、​​工作状态和一个名为收入的空字段。我有第二个表,其中有许多行,其中 Name、Dept 和 State Worked 匹配表 A 和一个收入字段。我想运行一个更新查询,将不同名称、部门、工作状态记录的收入合计,并将该值放在表 A 的收入字段中。

表 A:
艾伦,销售,CO
艾伦,销售,加利福尼亚州
保罗,发展,CO
加利福尼亚州发展部的保罗

表 B:
艾伦,销售,CO,100 美元
艾伦,销售,CO,150 美元
艾伦,销售,加利福尼亚州,200 美元
保罗,发展,科罗拉多州,100 美元
加利福尼亚州发展部的保罗,200 美元
Paul,开发,加利福尼亚州,300 美元

期望的结果(表 A):
艾伦,销售,科罗拉多州,250 美元
艾伦,销售,加利福尼亚州,200 美元
保罗,发展,科罗拉多州,100 美元
Paul,开发,加利福尼亚州,500 美元

【问题讨论】:

    标签: sql sql-server sql-server-2008


    【解决方案1】:
    UPDATE A 
     SET A.Earning = B.TotalEarning
    FROM tableA A 
    INNER JOIN  (SELECT Name, Dept, State , SUM(Earning) TotalEarning
                 FROM TableB 
                 GROUP BY Name, Dept, State ) B
    ON  A.Name = B.Name 
    AND A.Dept = B.Dept 
    AND A.State = B.State
    

    【讨论】:

    • 你太老了,不使用 cte 的 :)
    猜你喜欢
    • 2018-06-30
    • 2011-02-15
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2014-03-06
    • 1970-01-01
    相关资源
    最近更新 更多