回答編集履歴

6

追記

2019/08/08 02:53

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -69,3 +69,23 @@
69
69
  SET F_ZF = IIf((select Count(*) from T_WSlipDetail where F_SlipCode=Target.F_SlipCode and F_ProductCode=Target.F_ProductCode)>1, True, False)
70
70
 
71
71
  ```
72
+
73
+ 追記2
74
+
75
+ --
76
+
77
+ 手っ取り早くfalseにするSQL※1番目の逆
78
+
79
+ ```SQL
80
+
81
+ UPDATE T_WSlipDetail as target SET F_ZF = False
82
+
83
+ WHERE (
84
+
85
+ select count(*) from T_WSlipDetail
86
+
87
+ where F_SlipCode=target.F_SlipCode and F_ProductCode=target.F_ProductCode
88
+
89
+ ) = 1
90
+
91
+ ```

5

追記

2019/08/08 02:52

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -61,3 +61,11 @@
61
61
  SET F_ZF = IIf(DCount("*", "T_WSlipDetail", "F_SlipCode='" & F_SlipCode & "' and F_ProductCode='" & F_ProductCode & "'")>1, True, False)
62
62
 
63
63
  ```
64
+
65
+ ```SQL
66
+
67
+ UPDATE T_WSlipDetail As Target
68
+
69
+ SET F_ZF = IIf((select Count(*) from T_WSlipDetail where F_SlipCode=Target.F_SlipCode and F_ProductCode=Target.F_ProductCode)>1, True, False)
70
+
71
+ ```

4

修正

2019/08/07 09:09

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -58,6 +58,6 @@
58
58
 
59
59
  UPDATE T_WSlipDetail
60
60
 
61
- SET F_ZF = IIf(DCount("*", "T_WSlipDetail", "F_SlipCode='" & F_SlipCode & "'" and F_ProductCode='" & F_ProductCode & "'")>1, True, False)
61
+ SET F_ZF = IIf(DCount("*", "T_WSlipDetail", "F_SlipCode='" & F_SlipCode & "' and F_ProductCode='" & F_ProductCode & "'")>1, True, False)
62
62
 
63
63
  ```

3

追記

2019/08/07 08:56

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -49,3 +49,15 @@
49
49
  SET T_WSlipDetail.F_ZF = IIf(condition.F_SlipCode is null, False, True)
50
50
 
51
51
  ```
52
+
53
+
54
+
55
+ ※left joinでエラーになるようなら
56
+
57
+ ```SQL
58
+
59
+ UPDATE T_WSlipDetail
60
+
61
+ SET F_ZF = IIf(DCount("*", "T_WSlipDetail", "F_SlipCode='" & F_SlipCode & "'" and F_ProductCode='" & F_ProductCode & "'")>1, True, False)
62
+
63
+ ```

2

追記

2019/08/07 08:55

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -26,9 +26,11 @@
26
26
 
27
27
  件数が多いなら、こっちの方が高速かもしれません。
28
28
 
29
+ ※フラグの設定に変更
30
+
29
31
  ```SQL
30
32
 
31
- UPDATE T_WSlipDetail inner join (
33
+ UPDATE T_WSlipDetail left join (
32
34
 
33
35
  select F_SlipCode, F_ProductCode
34
36
 
@@ -44,6 +46,6 @@
44
46
 
45
47
  and T_WSlipDetail.F_ProductCode=condition.F_ProductCode
46
48
 
47
- SET F_ZF = True
49
+ SET T_WSlipDetail.F_ZF = IIf(condition.F_SlipCode is null, False, True)
48
50
 
49
51
  ```

1

追記

2019/08/07 08:41

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -17,3 +17,33 @@
17
17
 
18
18
 
19
19
  ※フラグはいつoffにするんでしょう?
20
+
21
+
22
+
23
+ 追記
24
+
25
+ --
26
+
27
+ 件数が多いなら、こっちの方が高速かもしれません。
28
+
29
+ ```SQL
30
+
31
+ UPDATE T_WSlipDetail inner join (
32
+
33
+ select F_SlipCode, F_ProductCode
34
+
35
+ from T_WSlipDetail
36
+
37
+ group by F_SlipCode, F_ProductCode
38
+
39
+ having count(*)>1
40
+
41
+ ) as condition
42
+
43
+ on T_WSlipDetail.F_SlipCode=condition.F_SlipCode
44
+
45
+ and T_WSlipDetail.F_ProductCode=condition.F_ProductCode
46
+
47
+ SET F_ZF = True
48
+
49
+ ```