0
私はSQLにはまったく新しいので、これが簡単なのか、自分のコードが適切でない場合はお詫び申し上げます。 私はすでにクエリを持っているデータセット(従業員番号と呼ぶ)を持っています。それは2400以上の結果を持っています。SQL:値がある場合はYを返します
クエリはデカルト積の問題があります:Oracle 10gの
上I'n Iは、2つの問題があります。 select文のフィールドから最新のレコードのみが必要です
SYSADM.PS_JOB.ACTION_REASONフィールドにREH(rehire)の値を持つテーブルJOBの行がいくつあるか調べる必要があります。 REHのレコード情報を返す必要はありません。単純なYまたはNのレコードを以下のクエリから返します。
これを行う方法はわかりません。
これまでの質問です。
SELECT a.paygroup, a.EMPLID, a.FILE_NBR, c.name, e.TLM_STATUS, b.rehire_dt
as "Emplmnt_Rltd_Dtes-Rehire Date"
FROM PS_EMPLOYMENT b
inner join SYSADM.PS_JOB a
on a.emplid = b.emplid
inner join SYSADM.PS_PERSONAL_DATA c
on a.emplid = c.emplid
inner join SYSADM.PS_SMS_SUBSCRB_TBL d
on a.paygroup = d.SUBSCRIBER_ID
Inner join PORTAL.PS_TS_EMPL_TLM_STATUS e
on a.emplid = e.emplid
where
b.rehire_dt IS NOT NULL
and d.EFFDT = (select max (d2.effdt) from PS_SMS_SUBSCRB_TBL d2 where
d.SUBSCRIBER_ID = d2.SUBSCRIBER_ID)
and e.EFFDT = (select max (e2.effdt) from PORTAL.PS_TS_EMPL_TLM_STATUS e2
where e.emplid = e2.EMPLID)
and d.EFF_STATUS <> 'T'
order by a.paygroup, a.emplid
ありがとうございました!
よろしく、
何混乱にselect文を変更..それを手に入れた右外部結合...など内部結合を実行... – jarlh
面白いことに、私は最初は右外部結合としてそれを持っていましたが、それは結果を変更しませんでした。 –
結合フィールドは一意の列です –