回答編集履歴
2
説明追記
answer
CHANGED
@@ -52,4 +52,13 @@
|
|
52
52
|
| 2 | 1 |
|
53
53
|
| 3 | 1 |
|
54
54
|
|
55
|
-
このような設計にすれば、「文書マスター」クエリのような複雑なSQLは不必要になりますし、データとして格段に扱いやすくなるはずです。
|
55
|
+
このような設計にすれば、「文書マスター」クエリのような複雑なSQLは不必要になりますし、データとして格段に扱いやすくなるはずです。
|
56
|
+
|
57
|
+
---
|
58
|
+
あと、**廃止済み** フィールドで、存続, 廃止済み, 状況不明 という3つの状況を記録したいなら、Yes/No型でなく、数値型にして、
|
59
|
+
0:存続
|
60
|
+
1:廃止済み
|
61
|
+
2:状況不明
|
62
|
+
というようにするのが意味か明確になると思います。
|
63
|
+
Nullだと、状況不明なのか入力忘れなのか曖昧になります。
|
64
|
+
入力方法としてはコンボボックスとかオプショングループにすると分かりやすくなります。
|
1
追記
answer
CHANGED
@@ -12,4 +12,44 @@
|
|
12
12
|
クエリ表示結果
|
13
13
|

|
14
14
|
|
15
|
-
チェックボックスが ■ はNull
|
15
|
+
チェックボックスが ■ はNull
|
16
|
+
|
17
|
+
追記
|
18
|
+
---
|
19
|
+
編集、追記されたテーフル情報、SQLをみて
|
20
|
+
クエリと結合するとFalseになることを確認しました。
|
21
|
+
下記のようなSQLで対処することになりそうです。
|
22
|
+
|
23
|
+
```sql
|
24
|
+
SELECT a.*, IIf(b.文書番号 Is Null,Null,b.廃止済) AS 廃止済
|
25
|
+
FROM 文書マスタ AS a LEFT JOIN 文書廃止テーブル AS b ON a.文書番号=b.文書番号;
|
26
|
+
```
|
27
|
+
ただ、そもそものテーブル設計が間違っていると思います。
|
28
|
+
|
29
|
+
**文書番号** と **REV** は一対多の関係です。
|
30
|
+
また、**文書番号** と **廃止済** は一対一の関係です。
|
31
|
+
|
32
|
+
一対多の関係のデータはテーブルを分割すべきです。
|
33
|
+
一対一の関係のデータはひとつのテーブルにまとめるべきです。
|
34
|
+
これはデータベース設計のセオリーです。
|
35
|
+
|
36
|
+
上記を考慮すると下記のような設計になります。
|
37
|
+
|
38
|
+
文書マスター
|
39
|
+
|
40
|
+
| 文書番号 | タイトル | 廃止済み |
|
41
|
+
|----------|------------|----------|
|
42
|
+
| 1 | 取扱説明書 | True |
|
43
|
+
| 2 | 仕様書 | False |
|
44
|
+
| 3 | 領収書 | Null |
|
45
|
+
|
46
|
+
文書Rev管理
|
47
|
+
|
48
|
+
| 文書番号 | rev |
|
49
|
+
|----------|-----|
|
50
|
+
| 1 | 1 |
|
51
|
+
| 1 | 2 |
|
52
|
+
| 2 | 1 |
|
53
|
+
| 3 | 1 |
|
54
|
+
|
55
|
+
このような設計にすれば、「文書マスター」クエリのような複雑なSQLは不必要になりますし、データとして格段に扱いやすくなるはずです。
|