日付を含む2つの列の間で特定の日付をフィルタリングする簡単な方法はありますか?私は特定の初めと終わりの年の中に雇われたすべての従業員を見せたい。従業員のカレンダーには、CalendarYearを示す列(例:2001-2002、2005-2006など)が表示され、数年があります。従業員が2001年2月1日から2002年1月2日の間に雇われた場合、私は2001年から2002年までのCalendarYearを1列に表示したいと考えています。年を含む列の間の特定の日付をフィルタする
select hr.EmployeeID
hr.EmploymentHireDate
,emp.CalendarBeginYear
,emp.CalendarEndYear
,emp.CalendarYear
,case when EmployeeHireDate between CalendarBeginYear and CalendarEndYear then CalendarYear else null
end as CalendarEnbdYear
from HR_Employee hr
join EmployeeCalendar em
hr.EmployeeID = emp.EmployeeID
私は何かが不足しているか間違っていることを知っています。 はEmployeeId
がカレンダーになり、なぜ
本当に 'EmployeeCalendar'に' EmployeeId'がありますか? – SqlZim
まずは、まずは、2001年2月1日から2002年1月2日ですか?あなたの事例に基づいてどの日付かを知ることは不可能です。次の質問は、カットオフが毎年どのようになっているかをどのように知っていますか、おそらく毎年同じではないでしょうか? –