2つのテーブルからクエリを作成しようとしています。たとえば、EmployeeとAppraisalです。これらのテーブルは両方とも1対多の関係を持っています。鑑定表には、従業員がAppraisalType列に応じて参加、再参加または退出するときの従業員の記録があります。SQLクエリからfromDateとtoDateを作成するには?
select dbo.Employee.EmployeeID
,dbo.Employee.FullName
,dbo.Employee.CostCenterID
,ea.AppraisalDate as fromDate
,
(select case
when exists
(select 1
from
EmployeeAppraisal as EA2
where EA2.EmployeeID = Employee.EmployeeID
and EA2.AppraisalType = 'Exit'
having min(EA2.AppraisalDate) > EA.AppraisalDate
)
then
(select min(AppraisalDate)
from
EmployeeAppraisal as EA2
where EA2.EmployeeID = EA.EmployeeID
and EA2.AppraisalType = 'Exit'
having min(EA2.AppraisalDate) > EA.AppraisalDate
)
else getdate()
end
) as ToDate
,0 as MonthDiff
,dbo.Employee.IsActive
from
dbo.Employee
join EmployeeAppraisal as EA
on Employee.EmployeeID = EA.EmployeeID
where EA.AppraisalType = 'Re-Joining'
and Employee.EmployeeId = 1253;
そして、これは以下の結果を与える。実際のデータではあるが、それはすべての行
に同じ間違ったtoDateまでを与えている、日付がfromDateから、終了する必要があります再結合することはtoDateまででなければならないことに注意してください。どんな助けもありがたいです
ソースデータを 'create table ... insert into ...'スクリプトとして追加してください。私たちが実際にあなたを助けるために使用します。 – iamdave