teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2019/04/08 08:31

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -5,9 +5,18 @@
5
5
  追記
6
6
  --
7
7
  ```SQL
8
- UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日) SET A.勤務 = B.勤務, A.出勤 = '11:00', A.退勤 = B.退勤
8
+ UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日)
9
+ SET A.勤務 = B.勤務, A.出勤 = '11:00', A.退勤 = B.退勤
9
10
  ```
10
11
  これで問題ないという事なので、更新されているのかどうかをlastupdateを更新するようにしてみると更新されているかどうかが分かると思います。
11
12
  ```SQL
12
- UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日) SET A.勤務 = B.勤務, A.出勤 = B.出勤, A.退勤 = B.退勤, A.lastupdate=Now()
13
+ UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日)
14
+ SET A.勤務 = B.勤務, A.出勤 = B.出勤, A.退勤 = B.退勤, A.lastupdate=Now()
15
+ ```
16
+ 追記2
17
+ --
18
+ 暗黙変換のせいかもしれませんので、以下を試してみてください
19
+ ```SQL
20
+ UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日)
21
+ SET A.勤務 = B.勤務, A.出勤 = CStr(B.出勤), A.退勤 = CStr(B.退勤)
13
22
  ```

2

追記

2019/04/08 08:31

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -2,9 +2,12 @@
2
2
  更新先が時刻型であるので、テキスト型でHHMMなど格納されているのであれば、HH:MMのように変換しないと駄目じゃないでしょうか。
3
3
  但し、ODBCドライバーが暗黙変換してくれればの話ですので、駄目な場合は型を合わせる必要があると思います。
4
4
 
5
- 直接値を指定した更新クエリーだと問題ないという事なので、日付/時刻型の書式に編集してみてください
6
- 以下例です。
5
+ 追記
6
+ --
7
7
  ```SQL
8
- SET A.出勤時刻=B.年月 & '/' & CStr(B.日) & ' ' & B.時刻
8
+ UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日) SET A.勤務 = B.勤務, A.出勤 = '11:00', A.退勤 = B.退
9
9
  ```
10
- 尚、上記場合は編集対象項目がNUllの場合は除外する等の考慮は必要です。
10
+ これで問題ないという事な更新されているかどうかをlastupdateを更新するようにしてみると更新されているかどうかが分かると思います。
11
+ ```SQL
12
+ UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日) SET A.勤務 = B.勤務, A.出勤 = B.出勤, A.退勤 = B.退勤, A.lastupdate=Now()
13
+ ```

1

追記

2019/04/08 08:21

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,3 +1,10 @@
1
1
  テキスト型である出勤時刻および退勤時刻はどのような書式で格納されていますか?
2
2
  更新先が時刻型であるので、テキスト型でHHMMなど格納されているのであれば、HH:MMのように変換しないと駄目じゃないでしょうか。
3
- 但し、ODBCドライバーが暗黙変換してくれればの話ですので、駄目な場合は型を合わせる必要があると思います。
3
+ 但し、ODBCドライバーが暗黙変換してくれればの話ですので、駄目な場合は型を合わせる必要があると思います。
4
+
5
+ 直接値を指定した更新クエリーだと問題ないという事なので、日付/時刻型の書式に編集してみてください
6
+ 以下例です。
7
+ ```SQL
8
+ SET A.出勤時刻=B.年月 & '/' & CStr(B.日付) & ' ' & B.出勤時刻
9
+ ```
10
+ 尚、上記の場合は、編集対象の項目がNUllの場合は除外する等の考慮は必要です。