回答編集履歴
3
追記
test
CHANGED
@@ -12,7 +12,9 @@
|
|
12
12
|
|
13
13
|
```SQL
|
14
14
|
|
15
|
-
UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日)
|
15
|
+
UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日)
|
16
|
+
|
17
|
+
SET A.勤務 = B.勤務, A.出勤 = '11:00', A.退勤 = B.退勤
|
16
18
|
|
17
19
|
```
|
18
20
|
|
@@ -20,6 +22,22 @@
|
|
20
22
|
|
21
23
|
```SQL
|
22
24
|
|
23
|
-
UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日)
|
25
|
+
UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日)
|
26
|
+
|
27
|
+
SET A.勤務 = B.勤務, A.出勤 = B.出勤, A.退勤 = B.退勤, A.lastupdate=Now()
|
24
28
|
|
25
29
|
```
|
30
|
+
|
31
|
+
追記2
|
32
|
+
|
33
|
+
--
|
34
|
+
|
35
|
+
暗黙変換のせいかもしれませんので、以下を試してみてください
|
36
|
+
|
37
|
+
```SQL
|
38
|
+
|
39
|
+
UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日)
|
40
|
+
|
41
|
+
SET A.勤務 = B.勤務, A.出勤 = CStr(B.出勤), A.退勤 = CStr(B.退勤)
|
42
|
+
|
43
|
+
```
|
2
追記
test
CHANGED
@@ -6,14 +6,20 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
追記
|
10
10
|
|
11
|
-
|
11
|
+
--
|
12
12
|
|
13
13
|
```SQL
|
14
14
|
|
15
|
-
|
15
|
+
UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日) SET A.勤務 = B.勤務, A.出勤 = '11:00', A.退勤 = B.退勤
|
16
16
|
|
17
17
|
```
|
18
18
|
|
19
|
-
|
19
|
+
これで問題ないという事なので、更新されているのかどうかをlastupdateを更新するようにしてみると更新されているかどうかが分かると思います。
|
20
|
+
|
21
|
+
```SQL
|
22
|
+
|
23
|
+
UPDATE A INNER JOIN B ON (A.社員No = B.社員No) AND (A.年月日 = B.年月日) SET A.勤務 = B.勤務, A.出勤 = B.出勤, A.退勤 = B.退勤, A.lastupdate=Now()
|
24
|
+
|
25
|
+
```
|
1
追記
test
CHANGED
@@ -3,3 +3,17 @@
|
|
3
3
|
更新先が時刻型であるので、テキスト型でHHMMなど格納されているのであれば、HH:MMのように変換しないと駄目じゃないでしょうか。
|
4
4
|
|
5
5
|
但し、ODBCドライバーが暗黙変換してくれればの話ですので、駄目な場合は型を合わせる必要があると思います。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
直接値を指定した更新クエリーだと問題ないという事なので、日付/時刻型の書式に編集してみてください
|
10
|
+
|
11
|
+
以下例です。
|
12
|
+
|
13
|
+
```SQL
|
14
|
+
|
15
|
+
SET A.出勤時刻=B.年月 & '/' & CStr(B.日付) & ' ' & B.出勤時刻
|
16
|
+
|
17
|
+
```
|
18
|
+
|
19
|
+
尚、上記の場合は、編集対象の項目がNUllの場合は除外する等の考慮は必要です。
|