我正在寻找一种使用 Odata 创建子选择/子查询的方法。我要创建的查询应如下所示:
SELECT *
FROM Treatment
WHERE status = 'Pos'
and ID IN (
SELECT FIRST(ID)
FROM Treatment
WHERE TreatmentTypeSK = 9
GROUP BY Person, TreatmentTypeSK
ORDER BY Date DESC
)
作为我正在尝试完成的示例,请查看以下数据。
ID Person TreatmentTypeSK Status Date
----------------------------------------------------
1 Bob 9 Pos 1/5/15
2 Bob 9 Neg 2/10/15
3 Jane 9 Pos 1/20/15
4 Jane 9 Neg 1/1/15
5 Jane 8 Pos 3/2/15
使用上面的查询(我希望使用 odata 生成),返回的唯一结果将是 ID 3,因为它是 Jane 的最新处理记录,TreatmentTypeSK 为 9,状态为“Pos”。请注意,不会返回 ID 2,因为即使 Bob 有几条 TreatmentTypeSK 9 的记录,最新的一条没有“Pos”状态。