我尝试创建一个WIQL查询,用于比较工作项的字段内容及其相关(链接)工作项,例如其中工作项的“状态”与相关工作项的“状态”不同。
SELECT [System.Id], ... FROM WorkItemLinks WHERE ...
[Source].[System.State] <> [Target].[System.State])
ORDER BY [System.CreatedDate] desc, [System.AssignedTo] mode(MayContain)
(上面的......仅表示我为清楚起见省略的部分。)
当我尝试应用查询时,我从TFS收到此错误消息:
链接查询不能将表达式与不同的前缀混合
有没有办法将源字段和目标字段与WIQL进行比较?
答案 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)