首先,感谢所有试图解决世界各地许多问题的人。 现在我也有一个小问题,我希望它可以轻松回答。
我有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字段中。你可以帮我解决这个问题。
答案 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,因此应该可以在任何数据库中使用。