Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server TFS2013:如何通过SQL按顺序获取产品待办事项?_Sql Server_Tsql - Fatal编程技术网

Sql server TFS2013:如何通过SQL按顺序获取产品待办事项?

Sql server TFS2013:如何通过SQL按顺序获取产品待办事项?,sql-server,tsql,Sql Server,Tsql,我正在尝试使用SQL按待办事项顺序列出TFS(2013)中的产品待办事项。当我查看当前迭代时,我希望顺序与on prem web门户中看到的相同 我似乎找不到这张订单存放的地方。我们已经应用了scrum模板-可能DimWorkItem表中根本不存在该字段 下面的查询检索我想要的列表,只是顺序不太正确 select t1.System_id, t1.System_Title, t1.System_State, t1.system_rev,

我正在尝试使用SQL按待办事项顺序列出TFS(2013)中的产品待办事项。当我查看当前迭代时,我希望顺序与on prem web门户中看到的相同

我似乎找不到这张订单存放的地方。我们已经应用了scrum模板-可能DimWorkItem表中根本不存在该字段

下面的查询检索我想要的列表,只是顺序不太正确

select  t1.System_id, 
        t1.System_Title, 
        t1.System_State, 
        t1.system_rev, 
        t1.Microsoft_VSTS_Common_BacklogPriority 
        from Tfs_Warehouse.dbo.DimWorkItem t1
INNER JOIN 
(
    select System_id, MAX(system_rev) system_rev 
    FROM Tfs_Warehouse.dbo.DimWorkItem where 
    System_WorkItemType='Product Backlog Item' and AreaSK=62 
    group by System_id
) pbi_recentT
ON t1.System_Id=pbi_recentT.System_Id and t1.system_rev=pbi_recentT.system_rev
order by IterationSK desc, Microsoft_VSTS_Common_BacklogPriority asc

TFS中的backlog是一个有序的工作项列表,backlog项的顺序由流程配置中定义的“order”字段决定。我们提供的流程模板对此“订单”字段使用不同的字段。Scrum模板使用名为“Backlog Priority”的字段,而Agile和CMMI模板使用名为“Stack Rank”的字段


因此,在您的情况下,按待办事项优先级排序是正确的。

您是否尝试过删除最后一行中的
IterationSK desc,
?如果它是您想要排序的优先级,那么另一列可能会放弃您的排序。迭代是递增的数字(基本上是Scrum中的sprint),但积压工作优先级似乎是非常大的随机数。我认为您需要对TFS 2013存储有深入的了解才能回答这个问题:-)*慢慢走开:)如果我将查询结果与TFS Web门户中的视图进行比较(内部部署),无论是在主积压还是在特定区域迭代级别,顺序都不相同。Stacked Rank字段为空,因此必须有另一个字段表示web门户上的订单。也许我会连接SQL分析器来发现发生了什么。可能还有另一个表存储“web订单”。当您使用scrum流程模板时,您应该使用“Backlog Priority”字段。查看通过访问页面生成的SQL-我认为它首先考虑了祖先项目的优先级顺序,甚至可能考虑了父项所处的迭代。因此,它不像按单个工作项的优先级排序那样简单。也许TVF GetWorkItemsTree()可以帮我做到这一点?我对您的查询有点困惑,按积压工作优先级排序不是给了您web访问的正确顺序吗?不。在最简单的情况下可能是这样。但是,当您将层次结构强加给产品待办事项时,我认为不能将深层项作为相等项进行比较,需要考虑父项/祖先待办事项优先级。如果父母来自不同的地区,孩子的PBI被带到与父母不同的地区,这可能会让人更加困惑!如果我用递归CTE查询链接来计算sql,我会让你知道的。