以下代码用于Sql Server 但我无法让它正常工作;状态不会按顺序排列并首先显示最新状态 我该如何解决?
<%
SQL = "SELECT S.MEMBERID, S.StatusMessage, S.StatusPlace, S.StatusCity, S.StatusDateEntered"
SQL = SQL & " FROM STATUSES S"
SQL = SQL & " GROUP BY S.MEMBERID"
SQL = SQL & " ORDER BY S.StatusDateEntered DESC"
Set objStatuses = objConn.Execute(SQL)
%>
答案 0 :(得分:3)
您的代码无效,因为您在GROUP
上正在进行MEMBERID
,但您没有聚合任何未分组的列...这只会为您提供一个随机值每个MEMBERID
的每个其他列...不一定是最新的。接下来,您将通过这些加扰数据进行排序,这不是您所期望的。
要解决此问题,您需要执行 groupwise-max ,这可以有效地实现为JOIN
到包含每个MAX(StatusDateEntered)
的子查询{ {1}}:
MEMBERID
答案 1 :(得分:0)
SQL = "SELECT S.MEMBERID, S.StatusMessage, S.StatusPlace, S.StatusCity, S.StatusDateEntered"
SQL = SQL & " FROM STATUSES S"
' SQL = SQL & " GROUP BY S.MEMBERID"
SQL = SQL & " ORDER BY S.StatusDateEntered DESC LIMIT 1"
Set objStatuses = objConn.Execute(SQL)