0

例: Emplid 001 の最も有効な日付の行 (たとえば、2013 年 1 月 1 日) はアクティブであり、deptid 101 に属しています。次に、01/12/2012 の行を取得する必要があります。したがって、連続した出現の最初の行である必要があります。他の deptid (102) を持つ 05/12/2012 の行がある場合、その場合、クエリは 10 を返す必要があります。 /12/2012 行、これについて助けてください

4

2 に答える 2

0

必要なものを達成するには、現在の max(effdt) 行の deptid と同じ deptid を持つ min(effdt) 行を選択する必要があります。また、行 > deptid を持つ min(effdt) < > min(effdt) 行の deptid。

上記の条件を満たすクエリは、結果セットに役立ちます。

于 2013-03-03T05:47:15.907 に答える
0

左結合ではありませんが、これは必要なデータを取得するために最小発効日でサブ選択を使用します。empl_rcd_nbr は通常、サブ選択 (および job2.empl_rcd_nbr - job.empl_rcd_nbr) でリミッターとして使用されますが、元の選択には含まれていません。重複行が発生した場合は、主キーであるため、empl_rcd_nbr の値を確認してください。

select job.emplid, job.effdt, job.deptid
from ps_job job
where job.effdt = (select Min(job2.effdt) 
                   from ps_job job2
                   where job2.emplid = job.emplid
                     and job2.deptid = job.deptid)
order by job.emplid
于 2013-01-17T04:58:33.547 に答える