2010 년 4 월 1 일에 마감 날짜가있는 직원이 있다면 2011 년 보고서에 포함되어야합니다. 이처럼 SQL 표현식이 필요하다면 :
With Employee AS
(
SELECT 'employee1' as Name, '2010-02-01' as StartDate, '2012-04-01' as EndDate UNION ALL
SELECT 'employee2' as Name, '2010-02-01' as StartDate, '2011-04-01' as EndDate UNION ALL
SELECT 'employee3' as Name, '2010-02-01' as StartDate, '2011-04-01' as EndDate UNION ALL
SELECT 'employee4' as Name, '2011-02-01' as StartDate, '2012-04-01' as EndDate UNION ALL
SELECT 'employee5' as Name, '2011-02-01' as StartDate, '2012-04-01' as EndDate UNION ALL
SELECT 'employee6' as Name, '2011-02-01' as StartDate, '2012-04-01' as EndDate UNION ALL
SELECT 'employee7' as Name, '2011-02-01' as StartDate, '2012-04-01' as EndDate UNION ALL
SELECT 'employee8' as Name, '2012-02-01' as StartDate, '2012-04-01' as EndDate UNION ALL
SELECT 'employee9' as Name, '2012-02-01' as StartDate, '2012-04-01' as EndDate
)
SELECT Employee2.Name AS EmployeeName, YEAR(Employee.StartDate) AS EmployeeWorkedYear
FROM Employee
JOIN Employee as Employee2 ON YEAR(Employee2.EndDate) >= YEAR(Employee.StartDate) AND YEAR(Employee2.StartDate) <= YEAR(Employee.StartDate)
GROUP BY YEAR(Employee.StartDate), Employee2.Name
직원 이름과 근무 연도가 표시됩니다. 그런 다음 이러한 표현식 (저장 프로 시저)을 사용하여 데이터 집합을 만들고 두 번째 열 (연도)별로 그룹화하고 그룹화 테이블, 차트 등을 만들어야합니다.
슬프게도 나는 Fetch 만 사용하도록 제한되어 있습니다. – Hakan
나는 당신이 Fetch CRM에 대해 언급 한 것을 놓쳤다, 나는 그걸로 일하지 않았다. 그러나 빠른 리뷰는 나의 쿼리를 사용할 수 있다는 것을 보여준다. 그리고 유사한 방법으로 fetch synatx와 같은 것을 만들 수있다. 그것은 조건에 기반한 온톨로지의 링크를 지원한다. 그것은 Join과 유사합니다). –