2014-01-05 3 views
0

내가 선택한 직원의 수와 그룹 수를 계산해야하는 곳에 문제가 있습니다. 세월은 매개 변수에서옵니다.SSRS 2008 : 매년 직원 수를 계산하는 방법

예. 매개 변수를 통해 2010-2013을 선택하는 경우 선택한 기간에 12 월 31 일에 직원 수를 계산하려고합니다. 문제는 CRM 2013의 Fecth를 사용하는 것으로 제한되어 있다는 것입니다.

직원에 대해서는 고용 날짜와 종료 날짜가 있지만 그룹에 직원 수를 알려주지 않으므로 그룹화 할 수 없습니다. 특정 선정 된 해. 또한 직원 수와 그룹별로 다른 차트를 작성해야합니다.

IIF를 사용하고 직원 수를 계산하여 특정 셀에 넣는 것은 어렵지 않지만 동적으로 수행해야합니다.

EDIT : 좀 더 생각 ... 다중 값 매개 변수를 사용하고 2010-12-31 ... 2013-12-31 연도에 사용 가능한 값을 설정하고 매년 내가 선택한 부분이 있습니다. 직원 수. 그런 다음이 다중 값 매개 변수를 그룹화 할 수 있어야합니다. 이것이 가능한가?

답변

0

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 

직원 이름과 근무 연도가 표시됩니다. 그런 다음 이러한 표현식 (저장 프로 시저)을 사용하여 데이터 집합을 만들고 두 번째 열 (연도)별로 그룹화하고 그룹화 테이블, 차트 등을 만들어야합니다.

+0

슬프게도 나는 Fetch 만 사용하도록 제한되어 있습니다. – Hakan

+0

나는 당신이 Fetch CRM에 대해 언급 한 것을 놓쳤다, 나는 그걸로 일하지 않았다. 그러나 빠른 리뷰는 나의 쿼리를 사용할 수 있다는 것을 보여준다. 그리고 유사한 방법으로 fetch synatx와 같은 것을 만들 수있다. 그것은 조건에 기반한 온톨로지의 링크를 지원한다. 그것은 Join과 유사합니다). –

관련 문제