- PR -

SQLについて

1
投稿者投稿内容
mm
会議室デビュー日: 2004/09/25
投稿数: 17
投稿日時: 2006-12-13 19:49
DB:SQL Server

-----------------
トランTB
-----------------
A_CD、B_CD、C_CD

-----------------
マスタA
-----------------
CD、D_CD、NAME

-----------------
マスタB
-----------------
CD、C_CD、NAME

-----------------
マスタC
-----------------
CD、NAME

-----------------
マスタD
-----------------
CD、NAME

(条件)
前提:トランTBのデータを全て取得すること
(1)トランTB.A_CD= マスタA.CD     :マスタAのNAMEを取得
(2)トランTB.B_CD=マスタB.CD      :マスタBのNAMEを取得
(3)トランTB.C_CD=マスタC.CD      :マスタCのNAMEを取得
(4)トランTB.B_CD=マスタB.CD AND
  マスタB.C_CD=マスタC.CD      :マスタCのNAMEを取得
(5)トランTB.A_CD=マスタA.CD AND
  マスタA.D_CD=マスタD.CD       :マスタDのNAMEを取得

SELECT *
FROM トランTB
     LEFT JOIN マスタA ON トランTB.A_CD=マスタA.CD   ・・・(1)
     LEFT JOIN マスタB ON トランTB.B_CD=マスタB.CD   ・・・(2)
     LEFT JOIN マスタC ON トランTB.C_CD=マスタC.CD   ・・・(3)


ここまでで躓いてしまいました。(4)、(5)を実現するにはどのようは
表記をしたら良いのでしょうか?

ご教授お願い致します。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2006-12-13 22:18
今環境がないので確かめられないんですが、多分こんなんでいいんじゃないでしょうか。
コード:

SELECT *
FROM トランTB
LEFT JOIN マスタA MA ON トランTB.A_CD = MA.CD
LEFT JOIN マスタB MB ON トランTB.B_CD = MB.CD
LEFT JOIN マスタC MC ON トランTB.C_CD = MC.CD
LEFT JOIN マスタC MC2 ON MB.C_CD = MC2.CD
LEFT JOIN マスタD MD ON MA.D_CD = MD.CD



[ メッセージ編集済み 編集者: 一郎 編集日時 2006-12-13 22:19 ]
1

スキルアップ/キャリアアップ(JOB@IT)