|
これまでのところを整理してみたいと思います。
どういうクエリを作りたいのかということが伝わっていません。
これまでに示されたのは、
>>>氏名テーブル(元の名前です)
>>>ID|支払コード|金額
>>>1 |A0001 |300
>>>2 |B0002 |400
>>>3 |C0003 |1
>>>4 |C0003 |500
>>>5 |A0001 |300
というテーブルと
>>>会社名称変換テーブル(元の名前です)
>>>ID|変更前|変更後|
>>>1 |C0003 |A0001
というテーブルをベースにして、
>>>結果クエリ
>>>A0001 |600
>>>B0002 |400
というクエリを作りたいということですよね。
そして、この結果クエリは、
>>>1.変更前に入力されている支払コードと金額は結果を出さない
>>>2.変更前から変更後に入力されている物は支払コードのみ振返る(解決)
ということですね。
これらを踏まえて質問です。
第1に、支払コードに関して、結果クエリで表示させたいフィールドは、
計3つのフィールドのうち、どのテーブルの何というフィールドですか。
なお、これは、作りたいクエリのSELECT句の問題です。
第2に、結果クエリの第2フィールドの値は、
氏名テーブルのどのフィールドについて、どのような集計を行った値なのですか。
これも、作りたいクエリのSELECT句の問題です。
第3に、それらのフィールドを表示させるためには、
どのテーブルを使う必要がありますか。
なお、これは、結果クエリのFROM句の問題です。
第4に、
>SELECT M.名前, M.会社名, S.変更前
>FROM 氏名 AS M LEFT JOIN 会社名称変換 AS S ON M.名前 = S.変更前
>WHERE (((S.変更前) Is Null));
というクエリが不一致クエリと呼ばれるクエリであることはわかっていますか。
また、不一致クエリというのがどういうレコードを抽出するクエリかということは
わかっていますか。
第5に、結果クエリにおける集計対象に、
氏名テーブルにおけるIDが1であるレコードと
IDが5であるレコードとが含まれるのは、
どういう抽出条件あるいは結合条件を設けるからですか。
第6に、結果クエリという集計クエリにおいて、
氏名テーブルにおけるIDが3であるレコードとIDが4であるレコードとが
集計対象から除外されるのはどういう抽出条件あるいは結合条件を設けるからですか。
第7に、結果クエリという集計クエリにおいて、
氏名テーブルにおけるIDが2であるレコードが集計対象に含まれるのは
どういう抽出条件あるいは結合条件を設けるからですか。
第8に、第5〜7の質問を踏まえてですが、
結果クエリにおいては、どのような抽出条件を設定したいのですか。
これらのうちには、これまでのやり取りで答えが出ている質問もありますが、
改めて、文章で考えてみてください。
文章で表現できれば、自ずとSQL文が見えてくるはずです。
|
|