2013-08-28 61 views
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中的值爲3,現在他已經交付了2個在表2中可用的訂單,我想將這2個添加到表1中的Emp_Deliveries字段中。你能幫我解決這個問題嗎?

+0

您如何確定表-2中的訂單是否已經添加到Emp-Deliveries值? – mustaccio

+0

表2僅包含有關新鮮交貨的信息。這是一個臨時表,在添加之後立即執行。 – Subash

回答

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,所以應該在任何數據庫中工作

+0

嗨戈登非常感謝您的解決方案。它工作正常。但我在這裏有一個小問題。當t1.Emp_ID = t2.Emp_ID時,是否可以通過將表-2中的字段(Product_Count)的值添加到表-1中的(Emp_Deliveries)來更新表-1。提前謝謝了。 – Subash

+0

@Subash。 。 。如果您在table2中有一個產品計數字段,則使用'sum(product_count)'而不是'count(*)'。 –

+0

嗨戈登..我嘗試了你建議的方式,但失敗了。實際上,表2中的Product_Count是每位員工。例如,員工可以在一次交付中交付2件產品。因此,我正在尋找一種解決方案來添加員工交付的產品數目並添加到表-1中的現有產品中。 – Subash

相關問題