0

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

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

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

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

链接查询不能混合使用不同前缀的表达式

有没有办法用 WIQL 比较源字段和目标字段?

4

1 回答 1

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)
于 2015-11-11T01:54:37.993 回答