我正在寻找一种方法来使用Odata创建子查询/子查询。我想要创建的查询应该如下所示:在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唯一的结果,因为它是简氏与9 TreatmentTypeSK和状态最新的治疗记录的POS ”。请注意,ID 2不会被返回,因为即使Bob有一些TreatmentTypeSK 9的记录,但最新的一个没有'Pos'状态。
谢谢汤姆。我已经看到了你提到的$ orderby功能。但是,这不是最大的担忧。我真的在寻找上面查询中显示的子查询的一些指导。 –
对不起,我没有把自己弄清楚,我已经编辑了答案,希望能更清楚一些。 – TomDoesCode