2

select between 2 テーブルからフィールド 'ErrCode' を更新する必要があります。すべてのレコードを更新するクエリを試します。

テーブル LeaveEmp

EmpRun Date                      Start                    Stop
00003  2012-10-02 00:00:00.000   2012-10-02 13:00:00.000  2012-10-02 17:00:00.000
00004  2012-10-02 00:00:00.000   NULL                     NULL

テーブルの変更時間

EmpNo  cDate                     cIn                      cOut                      ErrCode
00001  2012-10-02 00:00:00.000   NULL                     NULL                      NULL
00002  2012-10-02 00:00:00.000   2012-10-02 07:35:00.000  2012-10-02 20:12:00.000   NULL
00003  2012-10-02 00:00:00.000   2012-10-02 13:00:00.000  2012-10-02 17:00:00.000   NULL 
00004  2012-10-02 00:00:00.000   NULL                     NULL                      NULL
00005  2012-10-02 00:00:00.000   2012-10-02 07:13:00.000  2012-10-02 19:24:00.000   NULL
00006  2012-10-02 00:00:00.000   2012-10-02 07:55:00.000  2012-10-02 20:58:00.000   NULL
*****00003,00004 from Table LeaveEmp.step one i insert Table LeaveEmp to Table modifyTime**

コード:

UPDATE modifyTime
SET ErrCode = '3'
WHERE EXISTS (SELECT coalesce(l.Start,'2012-10-02')
FROM LeaveEmp l
WHERE l.Start = '2012-10-02' and modifyTime.cDate = '2012-10-02')

これは出力を取得します:

EmpNo  cDate                     cIn                      cOut                      ErrCode
00001  2012-10-02 00:00:00.000   NULL                     NULL                      3
00002  2012-10-02 00:00:00.000   2012-10-02 07:35:00.000  2012-10-02 20:12:00.000   3
00003  2012-10-02 00:00:00.000   2012-10-02 13:00:00.000  2012-10-02 17:00:00.000   3 
00004  2012-10-02 00:00:00.000   NULL                     NULL                      3
00005  2012-10-02 00:00:00.000   2012-10-02 07:13:00.000  2012-10-02 19:24:00.000   3
00006  2012-10-02 00:00:00.000   2012-10-02 07:55:00.000  2012-10-02 20:58:00.000   3

しかし、私は出力が必要です:

EmpNo  cDate                     cIn                      cOut                      ErrCode
00001  2012-10-02 00:00:00.000   NULL                     NULL                      NULL
00002  2012-10-02 00:00:00.000   2012-10-02 07:35:00.000  2012-10-02 20:12:00.000   NULL
00003  2012-10-02 00:00:00.000   2012-10-02 13:00:00.000  2012-10-02 17:00:00.000   3 
00004  2012-10-02 00:00:00.000   NULL                     NULL                      3
00005  2012-10-02 00:00:00.000   2012-10-02 07:13:00.000  2012-10-02 19:24:00.000   NULL
00006  2012-10-02 00:00:00.000   2012-10-02 07:55:00.000  2012-10-02 20:58:00.000   NULL

テーブル LeaveEmp からのみ更新する必要があります。

ありがとうございました。:)

4

1 に答える 1

1

modifyTime と LeaveEmp の間のリンクがありません...これを試してください

UPDATE modifyTime
SET ErrCode = '3'
FROM modifyTime m
INNER JOIN LeaveEmp l
  ON m.EmpNo = l.EmpRun
WHERE l.Start = '2012-10-02' and modifyTime.cDate = '2012-10-02'
于 2012-11-11T16:55:20.957 に答える