電子書籍の厳選無料作品が豊富!

SQLの構文でご教授願います。

テーブル1(顧客マスタ)
顧客番号  住所コード
1        01
1        02
1        03

テーブル2(住所マスタ)
住所コード 住所
01       ううう
02       いいい
03       あああ

上記2テーブルを連結し、
「顧客番号」と「同一顧客内の最小の住所コード」と「その住所コードの住所」を取得したいのですが、、、

SELECT 顧客マスタ.顧客番号,MIN(住所マスタ.住所コード) AS 住所コード,MIN(住所マスタ.住所) AS 住所 FROM 顧客マスタ INNER JOIN 住所マスタ ON 顧客マスタ.住所コード = 住所マスタ.住所コード GROUP BY 顧客マスタ.顧客番号;

と発行すると、

顧客番号  住所コード 住所
1        01      あああ

となってしまいます。
これを、

顧客番号  住所コード 住所
1        01      ううう

のように取得したいのですが、
どのようなSQL文を書けばよいのでしょうか。
ちなみに、VIEWは使いたくなく、複雑なSQL文でもかまわないので、
一度で持ってこれるような構文はないでしょうか?

宜しくお願いいたします。

A 回答 (1件)

まず、同一顧客内の最小の住所コードを取得し、


次に、「最小の住所コード」に対する住所を取得するようにします。

SELECT A.顧客番号,A.住所コード,B.住所 FROM (
SELECT 顧客番号,MIN(住所コード) AS 住所コード FROM 顧客マスタ
GROUP BY 顧客番号
) A
INNER JOIN 住所マスタ B ON A.住所コード = B.住所コード
    • good
    • 0
この回答へのお礼

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

なるほど。目から鱗でした。
早速試してみます。
ありがとうございました。

お礼日時:2007/02/27 15:58

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