プロが教える店舗&オフィスのセキュリティ対策術

WinXP DB:ACCESS2000
利用しています。

DB勉強中です、よろしくお願いします。

顧客管理の抽出条件のSQL文がわかりません。
T_顧客
ID 住所   氏名   TEL   紹介者1 紹介者2 紹介者3 紹介者4
001 愛知県名古屋市○1-1 山田太郎 000-000-0001  1  2  3
002 岐阜県岐阜市000-00  近藤たろう 000-110-0001  2 
003 愛知県愛知郡22-2222 後藤たろう 000-111-0001  3  4

T_紹介者
ID 住所   氏名   TEL
1 名古屋市 山田二郎 111-111-1112
2 岐阜市  安藤三郎 222-222-2222
3 津市   伊藤司郎 333-333-3333
4 静岡市  田中五郎 444-555-4445

と言うDBがありまして、以下のように抽出したいと思っています。

001 愛知県名古屋市○1-1 山田太郎 000-000-0001  山田二郎 安藤三郎 伊藤司郎
002 岐阜県岐阜市000-00  近藤たろう 000-110-0001  安藤三郎 
003 愛知県愛知郡22-2222 後藤たろう 000-111-0001  伊藤司郎 田中五郎

と言ったようにしたいです。

よろしくお願いします。

A 回答 (2件)

クエリの作り方でいいですか



以下に手順)

・クエリをデザインで作成します

・テーブル「T_顧客」を1つ、テーブル「T_紹介者」を5つ表示させます。
テーブル「T_紹介者」を5つ表示させると、テーブル名のところが、
「T_紹介者」、「T_紹介者_1」~「T_紹介者_4」になっていると思うので、
「T_紹介者」を表示上から削除します。
「T_顧客」、「T_紹介者_1」~「T_紹介者_4」の5つが表示されているようにします。

・「T_顧客」の「紹介者1」を「T_紹介者_1」の「ID」にドラッグします。
結合線が表示されるので、線をダブルクリックします。
結合プロパティは、'T_顧客'の全レコードと・・・・ に変更しOKボタン
紹介者2~4も同様に、
「紹介者2」を「T_紹介者_2」の「ID」に
「紹介者3」を「T_紹介者_3」の「ID」に
「紹介者4」を「T_紹介者_4」の「ID」に
結合プロパティは、'T_顧客'の全レコードと・・・・ に全て変更しOKボタン

・以下の順番にテーブル内の項目をダブルクリックしていきます。
「T_顧客」の「ID」「住所」「氏名」「TEL」
「T_紹介者_1」の「氏名」
「T_紹介者_2」の「氏名」
「T_紹介者_3」の「氏名」
「T_紹介者_4」の「氏名」

・下に表示されている一覧部分のフィールド欄のところの「氏名」が重複しているので、
テーブルが「T_紹介者_1」の「氏名」を「紹介者1: 氏名」に変更します。同様に
テーブルが「T_紹介者_2」の「氏名」を「紹介者2: 氏名」に
テーブルが「T_紹介者_3」の「氏名」を「紹介者3: 氏名」に
テーブルが「T_紹介者_4」の「氏名」を「紹介者4: 氏名」に


このクエリの表示を、データシートビューに切り替えてみます。

良かったら保存します。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。

ACCESSの操作方法まで丁寧に教えていただき、ありがとうございました。
思うような結果が得られて大変助かります。

ありがとうございました。

お礼日時:2009/11/08 21:32

質問のまる投げはいけませんよ



それはともかく、実際はこんな感じですが....
----------------------------------------------------
SELECT T_顧客.ID
 , T_顧客.住所
, T_顧客.氏名
, T_顧客.TEL
, 紹介者-1.氏名 AS 紹介者1
, 紹介者-2.氏名 AS 紹介者2
, 紹介者-3.氏名 AS 紹介者3
, 紹介者-4.氏名 AS 紹介者4
FROM (((T_顧客 LEFT JOIN T_紹介者 AS 紹介者-1
ON T_顧客.紹介者1 = 紹介者-1.ID)
LEFT JOIN T_紹介者 AS 紹介者-2
ON T_顧客.紹介者2 = 紹介者-2.ID)
LEFT JOIN T_紹介者 AS 紹介者-3
ON T_顧客.紹介者3 = 紹介者-3.ID)
LEFT JOIN T_紹介者 AS 紹介者-4
ON T_顧客.紹介者4 = 紹介者-4.ID;
----------------------------------------------------
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。

質問まる投げでした。すいません…。

LEFTJOINTを使うのですね、早速試してみました。
思うような結果が得られました。

ありがとうございました。

お礼日時:2009/11/08 21:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!