第一テーブルからいくつかの条件に基づいて、第一及び第二のテーブルから行をフェッチするSQLクエリは、シナリオ
従業員が日常的に給与を取得し、それは日々を変化させます。彼らの仕事も期間によって異なります。
私は2つのテーブルを持っています。 Table A
には、特定の期間の従業員の勤務情報が含まれています。 toDate
が12/31/9999
の場合、それはその従業員がworkId
の積極的な役割にあることを意味します。
Table B
には、すべての日付の特定の仕事の支払い額が含まれています。 table A
で
、私はtable B
でemplId
、workId
、fromDate
、toDate
を持って、私はworkId
、payDate
、payAmount
は、我々は(そのtoDate
あるアクティブworkId
のために、すべての従業員のpayAmount
を照会する必要がいます12/31/9999
)を現在の日付まで更新します。
など。 -
表A
+--------+--------+------------+------------+
| emplId | workId | fromDate | toDate |
+--------+--------+------------+------------+
| 1 | 123 | 01/01/2017 | 01/05/2017 |
| 2 | 456 | 01/01/2017 | 12/31/9999 | ***
| 1 | 123 | 01/06/2017 | 01/11/2017 |
| 3 | 123 | 01/01/2017 | 12/31/9999 | ***
+--------+--------+------------+------------+
表B
+--------+------------+-----------+
| workId | payDate | payAmount |
+--------+------------+-----------+
| 123 | 01/01/2017 | 11 |
| 123 | 01/02/2017 | 15 |
| 123 | 01/03/2017 | 10 |
| 123 | 01/04/2017 | 10 |
| 123 | 01/05/2017 | 7 |
| 123 | 01/06/2017 | 23 |
| 123 | 01/07/2017 | 57 |
| 123 | 01/08/2017 | 10 |
| 123 | 01/09/2017 | 13 |
| 123 | 01/10/2017 | 11 |
| 123 | 01/11/2017 | 9 |
| 456 | 01/01/2017 | 11 |
| 456 | 01/02/2017 | 15 |
| 456 | 01/03/2017 | 10 |
| 456 | 01/04/2017 | 10 |
| 456 | 01/05/2017 | 7 |
| 456 | 01/06/2017 | 23 |
| 456 | 01/07/2017 | 57 |
| 456 | 01/08/2017 | 10 |
| 456 | 01/09/2017 | 13 |
| 456 | 01/10/2017 | 11 |
| 456 | 01/11/2017 | 9 |
+--------+------------+-----------+
結果として得られる表C
+-------+--------+------------+-----------+
| empId | workId | payDate | payAmount |
+-------+--------+------------+-----------+
| 2 | 456 | 01/01/2017 | 11 |
| 2 | 456 | 01/02/2017 | 15 |
| 2 | 456 | 01/03/2017 | 10 |
| 2 | 456 | 01/04/2017 | 10 |
| 2 | 456 | 01/05/2017 | 7 |
| 2 | 456 | 01/06/2017 | 23 |
| 2 | 456 | 01/07/2017 | 57 |
| 2 | 456 | 01/08/2017 | 10 |
| 2 | 456 | 01/09/2017 | 13 |
| 2 | 456 | 01/10/2017 | 11 |
| 2 | 456 | 01/11/2017 | 09 |
| 3 | 123 | 01/01/2017 | 11 |
| 3 | 123 | 01/02/2017 | 15 |
| 3 | 123 | 01/03/2017 | 10 |
| 3 | 123 | 01/04/2017 | 10 |
| 3 | 123 | 01/05/2017 | 7 |
| 3 | 123 | 01/06/2017 | 23 |
| 3 | 123 | 01/07/2017 | 57 |
| 3 | 123 | 01/08/2017 | 10 |
| 3 | 123 | 01/09/2017 | 13 |
| 3 | 123 | 01/10/2017 | 11 |
| 3 | 123 | 01/11/2017 | 9 |
+-------+--------+------------+-----------+
とお願いクエリ。
まだ試したことがありますか? – GurV
ここでは、「SQLでの結合の仕方」のヒント - グーグル検索を行っています – Hogan
膨大な例を小さなものに置き換え、空白行を削除してコードブロックでフォーマットしてください。 – philipxy