回答編集履歴

3

追記

2018/11/12 10:20

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -37,6 +37,26 @@
37
37
  ※UPDATE構文でのset では、a1.tsubo=a2.tsuboのように、左辺にa1.などの修飾はできません。
38
38
 
39
39
  別パターン
40
+
41
+ ```SQL
42
+
43
+ update table_a a1
44
+
45
+ set tsubo=(
46
+
47
+ select tsubo from table_a
48
+
49
+ where (store, revision)=(
50
+
51
+ select a1.store, max(revision) from table_a where store=a1.store
52
+
53
+ )
54
+
55
+ )
56
+
57
+ where tsubo is null
58
+
59
+ ```
40
60
 
41
61
  ```SQL
42
62
 

2

追記

2018/11/12 10:20

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -28,13 +28,37 @@
28
28
 
29
29
  ) a2
30
30
 
31
- where a1.store=a2.store
31
+ where a1.tsubo is null and a1.store=a2.store
32
32
 
33
33
  ```
34
34
 
35
35
  となります。
36
36
 
37
37
  ※UPDATE構文でのset では、a1.tsubo=a2.tsuboのように、左辺にa1.などの修飾はできません。
38
+
39
+ 別パターン
40
+
41
+ ```SQL
42
+
43
+ update table_a a1
44
+
45
+ set tsubo=(
46
+
47
+ select tsubo from table_a
48
+
49
+ where store=a1.store
50
+
51
+ and revision=(
52
+
53
+ select max(revision) from table_a where store=a1.store
54
+
55
+ )
56
+
57
+ )
58
+
59
+ where tsubo is null
60
+
61
+ ```
38
62
 
39
63
  ```DATA
40
64
 

1

追記

2018/11/12 10:16

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -35,3 +35,53 @@
35
35
  となります。
36
36
 
37
37
  ※UPDATE構文でのset では、a1.tsubo=a2.tsuboのように、左辺にa1.などの修飾はできません。
38
+
39
+ ```DATA
40
+
41
+ CREATE TABLE table_a
42
+
43
+ (store varchar, revision int, deposit int, tsubo int)
44
+
45
+ ;
46
+
47
+
48
+
49
+ INSERT INTO table_a
50
+
51
+ (store, revision, deposit, tsubo)
52
+
53
+ VALUES
54
+
55
+ ('UDON', 1, 4143600, Null),
56
+
57
+ ('UDON', 2, 4143600, Null),
58
+
59
+ ('UDON', 3, 4143600, Null),
60
+
61
+ ('UDON', 4, 4143600, 180000),
62
+
63
+ ('Mac', 1, 2152400, Null),
64
+
65
+ ('Mac', 2, 2152400, Null),
66
+
67
+ ('Mac', 3, 2152400, Null),
68
+
69
+ ('Mac', 4, 2152400, Null),
70
+
71
+ ('Mac', 5, 2152400, Null),
72
+
73
+ ('Mac', 6, 2152400, 250000),
74
+
75
+ ('TENPURA', 1, 1234500, Null),
76
+
77
+ ('TENPURA', 2, 1234500, Null),
78
+
79
+ ('TENPURA', 3, 1234500, Null),
80
+
81
+ ('TENPURA', 4, 1234500, Null),
82
+
83
+ ('TENPURA', 5, 1234500, 120000)
84
+
85
+ ;
86
+
87
+ ```