我有两张桌子:
**Users**
UserID | UserName | Password
**Task**
TaskId | Hours | UserID (Empty as of now)
我需要在Tasks表中将UserID
分配给任务,以便所有用户都可以获得几小时的任务。我在数据库中有大约5000个任务,Hours
列值范围从1到30。
如何使用SQL Server查询或LINQ?
答案 0 :(得分:2)
这听起来像分区问题(请参阅here),您尝试分配任务,以便每个用户的小时数相同。
在某些情况下,问题很容易解决(例如,如果所有任务的长度都是1小时)。在其他情况下,问题没有解决方案(例如,如果用户多于任务)。作为提示,当问题具有如此极端的变化时,可能无法通过使用SQL查询来解决。
当然,您可以表示表格中的数据。并且,您可以将光标用于具有复杂逻辑的某些查询,并调用此SQL。
维基百科页面描述了几种不同的可能算法。祝你好运。