0
我是很新的SQL,所以我很抱歉如果这是一个简单的问题或者我的代码不正确。 我有一个数据集(让我们称之为员工数字),我已经有一个查询。它有2400多个结果。 I'n Oracle 10g上SQL:如果存在值,则返回Y
我有2个问题:
查询具有笛卡儿积的问题。我只需要选择语句中的字段的最近记录
我需要查找其中有多少人在表JOB中有一行的值为REH(重新雇佣)的SYSADM.PS_JOB.ACTION_REASON字段。我不需要从下面的查询中返回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
感谢您的帮助!
亲切的问候, 克雷格
什么乱七八糟的......右外加入...执行作为内加入... – jarlh
有趣的是,我原本是将它作为一个正确的外部连接,但是这并没有改变结果。 –
连接字段是否是唯一列 –