こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLのSELECT文教えてください。

VB5.0で、DBはSqlServer2000です。
SQL文のSELECT文で質問です。

○A_TABLEの構成(概略)

・・・担当コード1・・・担当コード2

○TANTO_TABLE
担当コード/担当名

(質問)TANTO_TABLEからA_TABLEの担当コード1と担当コード2の担当名を抽出したいのです。

次のSQLだと担当コード1のみしか抽出できません。
効率よく担当コード1と2の担当名を抽出するSQLを教えてください。お願いします。

SELECT 担当名
FROM A_TABLE,TANTO_TABLE
WHERE A_TABLE.担当コード1 = TANTO_TABLE.担当コード

投稿日時 - 2003-04-24 21:38:57

QNo.531288

すぐに回答ほしいです

質問者が選んだベストアンサー

こういうことでは?

SELECT
 (select tb.担当名 from TANTO_TABLE tb where tb.担当コード=ta.担当コード1) as 担当名1,
 (select tc.担当名 from TANTO_TABLE tc where tc.担当コード=ta.担当コード2) as 担当名2
FROM A_TABLE ta;

ベタだけど (^^;

投稿日時 - 2003-04-25 15:35:37

お礼

レスが遅れて申し訳ありません。
うまく行きました。
ありがとう御座いました。

投稿日時 - 2003-04-28 21:12:25

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.3

こういうこと?

SELECT
 N1.担当名 AS 担当者氏名1,
 N2.担当名 AS 担当者氏名2
FROM TANTO_TABLE N1
LEFT OUTER JOIN TANTO_TABLE N2 ON (A_TABLE.担当コード2 = N2.担当コード)
WHERE A_TABLE.担当コード1 = N1.TANTO_TABLE.担当コード

投稿日時 - 2003-04-25 09:46:01

お礼

参考にします。ありがとうございました。

投稿日時 - 2003-04-28 21:14:07

ANo.2

 
Inner Join, Left Join, Right Join に関しては、SQL Server 2000でもJetでも、ほぼおなじ文法が使えますので、Accessのクエリーデザイン(QBE)でも使ってご希望の形を作ってください。
それを、クエリーアナライザなり、エンタープライズマネージャなりのツールでデバッグし、必要な箇所を手直ししてコピペすればOKです。

・・・失礼ですが、こんな程度のこともできないのに、よく給料がもらえますね。(感心)
 

投稿日時 - 2003-04-25 09:31:07

お礼

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

投稿日時 - 2003-04-28 21:15:01

ANo.1

ごめんなさい。何がしたいのかよくわかりません。

1.A_TABLEの構成は?
   いくつかフィールドがあり、その中の二つが「担当コード1」と
   「担当コード2」と言うことですか?

2.A_TABLEの仕様
   上記が私の思惑通りだったとして、1と2の違いは?

3.SELECTしたい内容
   取ってきたいのが「担当名」と言うことはわかりましたが、いったい
   どういう意図で担当名を取りたいのでしょう?


例えば・・・(等ピッチで見てください)

A_TABLE                 TANTO_TABLE
+--------------+--------------+     +--------+------------+
| 担当コード1 | 担当コード2 |     | 担当名 | 担当コード |
+--------------+--------------+     +--------+------------+
|      1 |      3 |     | 田中  |     1 |
|      2 |      1 |     | 山本  |     2 |
|      3 |      2 |     | 鈴木  |     3 |
|      4 |      4 |     | 原田  |     4 |

という状態だったとして、あなたがしたいのはどういう事ですか?

田中 鈴木
山本 田中
鈴木 山本
原田 原田

を返してほしいのですか?

投稿日時 - 2003-04-24 22:24:37

補足

説明不足だったみたいです。ごめんなさい。

1.その通りです。
  項目は他にもありますが、今回必要なもののみ記入しました。


やりたい事はteiou68kさんのおっしゃるとおりです。
TANTO_TABLEは担当コードがキーで担当名が項目です。
A_TABLEに担当コード1と2があり、TANTO_TABLEおよびA_TABLEからSQL実行し、その結果として担当名1と2を1RECとして取得したいのです。

よろしくお願いいたします。m(__)m

投稿日時 - 2003-04-25 07:37:50

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-