【发布时间】:2016-01-15 20:44:14
【问题描述】:
例如,我正在尝试为表中的每个机构登记其最近访问日期为“是”的机构;
Agency Id Date of Visit Passed
1 8/19/2015 No
1 6/9/2015 Yes
1 2/6/2015 No
2 9/2/2015 No
2 5/11/2015 Yes
2 3/4/2015 Yes
3 9/10/2015 Yes
3 5/11/2015 No
3 3/5/2015 No
4 10/6/2015 Yes
4 5/19/2015 No
4 3/25/2015 Yes
表格中所需的结果应该只有以下,因为它们在最近的日期被标记为是
Agency Id Date of Visit Passed
3 9/10/2015 Yes
3 5/11/2015 No
3 3/5/2015 No
4 10/6/2015 Yes
4 5/19/2015 No
4 3/25/2015 Yes
我尝试过使用
SELECT agencyid, max(dateofvisit), passed
FROM tblAgency
WHERE passed = 'Yes'
GROUP BY agencyid
但这似乎不起作用,因为它会从表中带来所有被传递为“是”的记录。
如果可以的话,谁能告诉我。
【问题讨论】:
-
必须是他们过去的最后日期,还是应该在某个时间过去?
-
必须传入最新日期
-
通用 GROUP BY 规则:“如果指定了 GROUP BY 子句,则 SELECT 列表中的每个列引用必须标识一个分组列或者是一个集合函数的参数。”
-
嗨@MohsinTester 我已经查看了您的查询并得出结论,您希望选择以下机构列表: (1) Passed='Yes' (2) 考虑最近的访问日期(即,如果两条记录 Passed= '是'然后考虑最近访问日期的记录)请确认。
-
不,如果您查看想要的结果,很明显,无论过去通过什么结果,最近访问日期都应该有“是”。