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 はテーブル 1 の Emp_Deliveries フィールドで 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
                          ));

これらのクエリを表現する方法は他にもあります (特に 2 番目の方法)。ただし、これらは標準 SQL であるため、どのデータベースでも機能するはずです。

于 2013-08-28T12:17:59.387 に答える