2014-01-05 103 views
0

我有一個問題,我需要數名員工在選定的年數和組指望員工。這些年來自參數。SSRS 2008:如何每年

E.g.如果我通過參數選擇2010-2013,我想在這些選定的年份中計算12月31日的員工人數。問題是,我僅限於使用客戶關係管理2013年的Fecth。

在僱員有就業日期和結束日期,但我不能對此進行分組,因爲它不告訴我有多少僱員某些選定的年份。我還需要根據每年的員工數量和分組情況制定不同的圖表。

這並不難使用一個IIF和計算僱員的數量,並把爲特定的細胞,但我需要它是動態的。

編輯:一些更多的想法... 如果我使用多值參數,並將可用值設置爲2010年12月31日... 2013-12-31年,並且在每年我有一個選擇,我計算在職員工人數。然後我只需要能夠在這個多值參數上進行分組。這可能嗎?

回答

0

我客人,對你的任務,如果你有員工具有比他應該在報告中包括2011年爲例2011-06-04結束日期。如果我是正確的,你需要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

可悲的是我是僅限於使用讀取。 – Hakan

+0

我錯過了你提到關於獲取CRM,我沒有使用它,但快速的審查表明,你可以使用我的查詢,並與類似的方式獲取synatx創建相同的,它支持基於狀態ontities的鏈接(我客人它與Join相似)。 –