2013-08-06 141 views
2

我有兩個表:分配均勻行從表

**Users** 
UserID | UserName | Password 

**Task** 
TaskId | Hours | UserID (Empty as of now) 

我需要在任務分配表UserID給任務,讓所有用戶獲得的甚至幾個小時的任務。我在數據庫中有大約5000個任務,並且Hours列值範圍爲1到30.

如何使用SQL Server查詢或LINQ來完成?

+0

一天中有多少小時再次出現?!? :P – Pinch

+0

以及我認爲完成任務的工作時間,而不是一天中的小時數 – Jonesopolis

+0

你的規則書在哪裏? – Pinch

回答

2

這聽起來像是分區問題(請參閱here),您嘗試分配任務,因此每個用戶的小時總數相同。

在某些情況下,問題很容易解決(例如,如果所有任務都是1小時)。在其他情況下,問題沒有解決方案(例如,如果用戶數多於任務數)。作爲一個提示,當一個問題有如此極端的變化時,它可能無法通過使用SQL查詢來解決。

當然,您可以代表表中的數據。而且,你可以在複雜邏輯的某個查詢上使用遊標,並調用這個SQL。

維基百科頁面描述了幾種不同的可能算法。祝你好運。