私は、自分の状況に最も近いものを判断しようとしているいくつかのサイトと多数のチュートリアルを見直しました。それぞれの試みで、私は間違ったデータを返すか、重複したり、必要なすべてのフィールドを返すことができなかった。どんな支援も大歓迎です。ありがとう、初心者3つのOracleテーブルを結合するSQLステートメント
私は3つのテーブルを持って、彼らはそれぞれSUBR_IDのprimary_keyを共有します。レイの言葉では、私はTBL_SUBR_INDV_CARRY_OVERからすべてのSUBR_IDとサブINDV_ID(1対多)からBENEFIT_CARRY_OVERを抽出しようとしています。GRP_ID = '0G0000000'の場合、姓、名、加入者ID、個人ID、 。以下は、参照されている3つのテーブルと、試行された文の試行です。
TBL_SUBR_INDV_CARRY_OVER:
SUBR_ID
INDV_ID
BENEFIT_CARRY_OVER
TBL_SUBR_GRP:
SUBR_ID
GRP_ID
TBL_SUBR_INDV:
SUBR_ID
INDV_ID
LNME
FNME
試み#1
select DISTINCT DCS2000.TBL_SUBR_GRP.SUBR_ID, DCS2000.TBL_SUBR_INDV.INDV_ID, LNME, FNME, GRP_ID, BENEFIT_YEAR, BENEFIT_CARRY_OVER
from DCS2000.TBL_SUBR_INDV_CARRY_OVER,
DCS2000.TBL_SUBR_GRP,
DCS2000.TBL_SUBR_INDV
where DCS2000.TBL_SUBR_INDV_CARRY_OVER.SUBR_ID = DCS2000.TBL_SUBR_INDV.SUBR_ID
and DCS2000.TBL_SUBR_INDV.SUBR_ID = DCS2000.TBL_SUBR_GRP.SUBR_ID
and DCS2000.TBL_SUBR_GRP.GRP_ID = '0G0000000'
and DCS2000.TBL_SUBR_INDV_CARRY_OVER.BENEFIT_CARRY_OVER > '0'
試行#2
select DCS2000.TBL_SUBR_INDV.SUBR_ID, DCS2000.TBL_SUBR_INDV.INDV_ID, DCS2000.TBL_SUBR_INDV.LNME, DCS2000.TBL_SUBR_INDV.FNME, DCS2000.TBL_SUBR_GRP.GRP_ID, DCS2000.TBL_SUBR_INDV_CARRY_OVER.BENEFIT_YEAR, DCS2000.TBL_SUBR_INDV_CARRY_OVER.BENEFIT_CARRY_OVER
from DCS2000.TBL_SUBR_INDV
join DCS2000.TBL_SUBR_GRP on (
where DCS2000.TBL_SUBR_INDV_CARRY_OVER.SUBR_ID = DCS2000.TBL_SUBR_INDV.SUBR_ID
and DCS2000.TBL_SUBR_INDV.SUBR_ID = DCS2000.TBL_SUBR_GRP.SUBR_ID
and DCS2000.TBL_SUBR_GRP.GRP_ID = '0G0000000'
and DCS2000.TBL_SUBR_INDV_CARRY_OVER.BENEFIT_CARRY_OVER > '0'
試行#3
SELECT LNME, FNME, SUBR_ID, INDV_ID
FROM DCS2000.TBL_SUBR_INDV
WHERE DCS2000.TBL_SUBR_INDV.SUBR_ID IN
(SELECT BENEFIT_CARRY_OVER
FROM DCS2000.TBL_SUBR_INDV_CARRY_OVER
WHERE DCS2000.TBL_SUBR_INDV_CARRY_OVER.SUBR_ID IN
(SELECT SUBR_ID
FROM DCS2000.TBL_SUBR_GRP
WHERE DCS2000.TBL_SUBR_GRP.GRP_ID = '0G0000000')
)
キャリーオーバーテーブルのbenefit_yearは、クエリ結果に表示しますか? –