Sql server SQL Server-返回非冲突计划的查询

Sql server SQL Server-返回非冲突计划的查询,sql-server,Sql Server,我正在尝试编写一个命令,为具有不同工作地址的员工创建日程安排。有许多地点,每个地点在一段时间内必须访问一次(由一名员工访问) 首先,我只制作了两个表,address\u availability(列avail\u date和address)和employee\u availability(列avail\u date和name) 为了得到所有可能的工作地点的列表,我只需从两个表中选择地址和员工姓名,并在日期将它们连接起来。作为示例输出,我得到 London, Thomas, 27/05/2019

我正在尝试编写一个命令,为具有不同工作地址的员工创建日程安排。有许多地点,每个地点在一段时间内必须访问一次(由一名员工访问)

首先,我只制作了两个表,address\u availability(列avail\u date和address)和employee\u availability(列avail\u date和name)

为了得到所有可能的工作地点的列表,我只需从两个表中选择地址和员工姓名,并在日期将它们连接起来。作为示例输出,我得到

London, Thomas, 27/05/2019
London, Thomas, 28/05/2019
Glasgow, Thomas, 27/05/2019
London, Mary, 27/05/2019
Glasgow, Mary, 27/05/2019
我需要这样做,这样就不会有日程冲突,也就是说,如果托马斯被提议在27日去伦敦,他就不能在27日去格拉斯哥

我还希望命令每个员工最多给出5个结果,而不是在同一日期为同一地点推荐两名员工


我不确定我使用的工具是否适合这份工作。这在SQL中可行吗?

如果您愿意将其放入电子表格中,我将使用PIVOT查询)以某种格式获取数据

LOCATION     TIME        Thomas  Mary  

London       27/05/2019  1       1
Glasgow      27/05/2019  1       1

London       28/05/2019  1       0
从上表可以看出,在27日,玛丽和托马斯都可以做,但在28日,托马斯是唯一可以做的

至于让它生成一个列表,你可以通过在只有一个选项的地方循环来进一步使用这个脚本,将它(然后在那天删除那个人)再次循环。根据复杂性,你很快就会达到极限,你有两个选择,你只需要选择一个


这也是基于这样一种理解,即始终存在一个解决方案,您没有规划完整的需求等来建议。

我不确定SQL Server是否适合这类工作。这是应用程序通常会处理的事情;因为这(很可能)是一个迭代过程,一旦得到确认,就会写回数据库。这个想法只是把输出结果放到电子表格中。考虑到它的使用频率,在应用程序中实现它的努力并不是真正合理的,所以如果没有现成的应用程序来处理这种事情,我可能会恢复手动操作。太糟糕了,我很想看看顽固派(100k+)中的一个能在这里创建什么…:)我认为这在任何情况下都是一个很好的问题。即使只是出于好奇或是为了将来的应用,需要一个不冲突的结果,这也会很有趣