0

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

我有 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 字段 I 表 1 中的值为 3,现在他已经交付了 2 个在表 2 中可用的订单,我想将这 2 个订单添加到表 1 中的 Emp_Deliveries 字段。你能帮我解决这个问题吗?

4

1 回答 1

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,因此应该适用于任何数据库。

于 2013-08-28T12:17:59.387 回答