|
テーブル A
A1 A2 A3 A4
X11 X11-1 X11-2 X11-3
X21 X21-1 X21-2 X21-3
X31 X31-1 X31-2 X31-3
X41 X41-1 X41-2 X41-3
X51 X51-1 X51-2 X51-3
テーブル B
B1 B2
X11-1 1
X21-1 2
X21-2 3
X31-1 4
X31-2 10
X31-3 11
X41-2 12
X41-3 13
X51-1 14
テーブル A とテーブル B 2種類あります。
テーブル Aは4カラムですべて文字列
テーブル Bは2カラムですべて文字列
クエリCはこのような結果を得たいです。
クエリC
A1 A2 A3 A4 A5 A6 A7
X11 X11-1 X11-2 X11-3 1 0 0
X21 X21-1 X21-2 X21-3 2 3 0
X31 X31-1 X31-2 X31-3 4 10 11
X41 X41-1 X41-2 X41-3 0 12 13
X51 X51-1 X51-2 X51-3 14 0 0
1. クエリCとテーブルAのレコード件数は同じ
2. テーブルA の A2,A3,A4の値とテーブルBの B1とでVlookupして、B2の値をとります。ただし同じ行に値をとります。
A2で取ったB2の値はA5、A3で取ったB2の値はA6、A4で取ったB2の値はA7のカラムにとります。
下のようにDlookupを使って実現できるのですが、テーブルAのレコード件数が多くて
実用的に遅くて使えないです。
フィールドに
A5:IIF(Dlookup("B2","B", "[B1] ='" &[A2]& "'")="",'0',Dlookup("B2","B", "[B1] ='" &[A2]& "'"))
A6:IIF(Dlookup("B2","B", "[B1] ='" &[A3]& "'")="",'0',Dlookup("B2","B", "[B1] ='" &[A2]& "'"))
A7:IIF(Dlookup("B2","B", "[B1] ='" &[A4]& "'")="",'0',Dlookup("B2","B", "[B1] ='" &[A2]& "'"))
と記載すれば、目的の値はとれることはわかる。
SQLを使って表現するには、どのようにすればよいかご教示いただけないでしょうか。
何卒よろしくお願い申し上げます。
|
|