WIQL:将源字段与目标字段进行比较

时间:2015-11-09 13:24:31

标签: tfs wiql

我尝试创建一个WIQL查询,用于比较工作项的字段内容及其相关(链接)工作项,例如其中工作项的“状态”与相关工作项的“状态”不同。

SELECT [System.Id], ... FROM WorkItemLinks WHERE ...
[Source].[System.State] <> [Target].[System.State])
ORDER BY [System.CreatedDate] desc, [System.AssignedTo] mode(MayContain)

(上面的......仅表示我为清楚起见省略的部分。)

当我尝试应用查询时,我从TFS收到此错误消息:

  

链接查询不能将表达式与不同的前缀混合

有没有办法将源字段和目标字段与WIQL进行比较?

1 个答案:

答案 0 :(得分:0)

不,正如错误消息所示,您不能将表达式与不同的前缀混合使用。因此,您无法直接比较Source和Target中的字段。有关详细信息,请参阅MSDN中的此链接:http://blogs.msdn.com/b/team_foundation/archive/2010/07/02/wiql-syntax-for-link-query.aspx

但是,对于具有预定义列表值的字段,您可以编写如下的查询以实现所需的功能。

SELECT [System.Id] FROM WorkItemLinks WHERE 
([Source].[System.State] = ‘New’ and [Target].[System.State] <> ‘New’) 
OR ([Source].[System.State] = ‘Resolved’ and [Target].[System.State] <> ‘Resolved’)
OR ([Source].[System.State] = ‘Active’ and [Target].[System.State] <> ‘Active’)
OR ([Source].[System.State] = ‘Closed’ and [Target].[System.State] <> ‘Closed’)
ORDER BY [System.CreatedDate] desc, [System.AssignedTo] mode(MayContain)