将表中的Field值添加到其他表中的值

时间:2013-08-28 11:52:47

标签: sql

首先,感谢所有试图解决世界各地许多问题的人。 现在我也有一个小问题,我希望它可以轻松回答。

我有2张表格如下。

**Table-1**
Emp_ID
Emp_Name
Emp_Address
Emp_Deliveries

**Table-2**
Order_ID
Order_Date
Emp_ID
Delivery_Date
Delivery_Status

表2包含所有交付信息,表-1包含员工主数据。 现在,我想将表2中每位员工完成的交付次数添加到表-1中的Emp_Deliveries字段中。 例如,Emp10001在Emp_Deliveries fielld I table-1中的值为3,现在他已经发送了2个表,这些表在表2中可用,我想将这些2添加到表-1中的Emp_Deliveries字段中。你可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

您可以select

执行此操作
select e.emp_id, (e.emp_deliveries + coalesce(d.cnt, 0)) as emp_deliveries
from table1 e left outer join
     (select emp_id, count(*) as cnt
      from table2 d
      group by emp_id
     ) d
     on e.emp_id = d.emp_id;

如果您想实际更新值:

update table1
    set emp_deliveries = (emp_deliveries +
                          (select count(*)
                           from table2
                           where table2.emp_id = table1.emp_id
                          ));

还有其他方法来表达这些查询(尤其是第二个查询)。但这些是标准的SQL,因此应该可以在任何数据库中使用。