【问题标题】:Return Only Most Recent Record From Related Entity in OData Query仅返回 OData 查询中相关实体的最新记录
【发布时间】:2020-10-07 08:22:30
【问题描述】:

我正在尝试创建 OData 查询以从 Azure DevOps 返回错误以获取 PowerBI 报告,但我没有得到我正在寻找的结果,因为我尝试扩展的相关实体之一返回了多个结果。

我的基本查询如下所示(简化并删除自定义字段)

https://analytics.dev.azure.com/[organization]/[project]/_odata/v3.0-preview/WorkItems?$select=WorkItemId,WorkItemType,Title,State,LeadTimeDays&$filter=WorkItemType eq 'bug'&$expand=Teams($select=TeamName,AnalyticsUpdatedDate)

一些记录在 JSON 响应中返回多个团队名称

"value": [
{
  "WorkItemId": 16547,
  "LeadTimeDays": 173.0639004,
  "Title": "test",
  "WorkItemType": "Bug",
  "State": "Closed",
  "Severity": "3 - Medium",
  "Teams": [
    {
      "TeamName": "Team1",
      "AnalyticsUpdatedDate": "2019-09-17T01:48:46.5433333Z"
    },
    {
      "TeamName": "Team2",
      "AnalyticsUpdatedDate": "2019-12-03T16:52:39.9466667Z"
    }
  ]
}

]

我不知道为什么这些记录对此实体有多个值,但我只需要最新的(上例中的团队 2)。是否可以只返回相关团队实体的最新记录?我尝试在查询中的扩展子句和其他地方使用 orderby 和 top 无效。如果我在 OData 查询中做不到,那么我可以在展开表格后在 Power BI 中完成。

【问题讨论】:

    标签: azure-devops powerbi odata


    【解决方案1】:

    我找到了解决方法。我需要在 Expand 子句中的子句之间使用分号。

    https://analytics.dev.azure.com/[organization]/[projet]_odata/v3.0-preview/WorkItems?$select=WorkItemId,WorkItemType,Title,State,LeadTimeDays&$filter=WorkItemType eq 'bug'&$expand=Teams($select=TeamName,AnalyticsUpdatedDate;$orderby=AnalyticsUpdatedDate desc;$top=1)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多