Sql 查询未显示预期结果

Sql 查询未显示预期结果,sql,ms-access,Sql,Ms Access,在这里,我将尽可能具体,因此这里是使用MsAccess的查询 SELECT MsThread.ID, MsThread.ThreadName, COUNT(MsThread.ThreadName) AS TotalPost FROM MsThread LEFT OUTER JOIN MsPosts ON MsThread.ThreadName = MsPosts.ThreadName GROUP BY MsThread.ID, MsThread.ThreadName,

在这里,我将尽可能具体,因此这里是使用MsAccess的查询

SELECT MsThread.ID, 
       MsThread.ThreadName, 
COUNT(MsThread.ThreadName) AS TotalPost 
FROM MsThread 
LEFT OUTER JOIN MsPosts 
ON MsThread.ThreadName = MsPosts.ThreadName 
GROUP BY MsThread.ID, MsThread.ThreadName, MsThread.ThreadCategory
当我在MsAccess中运行查询时,它返回以下内容:

它显示我有4行(#个线程),数字5,2,1,1是具有指定线程的帖子的数量。在这里,我一直试图让resultset返回4而不是9,这样我就可以在没有无效游标状态错误的情况下循环它

rs.last();
int row = rs.getRow();
它返回8,所以我猜它返回了多少个进程。那么如何让它返回类似于COUNT函数的4呢


非常感谢

rs,我假设,是SQL返回的结果记录集?如果是,您可以执行以下操作:

rs.MoveFirst
rs.MoveLast

X = rs.RecordCount
在这种情况下,X应该等于4,因为您的记录集中有4条记录


我认为您不想使用“row”作为变量名,因为这是一个保留字,在尝试引用它时可能会导致问题。让您的生活更轻松,并将其称为“RowX”或其他非保留行。

请注意,返回
TotalPost=1
的行不能保证实际有一行。使用
LEFT JOIN
意味着
MsPosts
中的行不是必需的,因此如果没有行,它只计算
MsThread
中的单行。我还怀疑您正在运行的查询是否是这样的,因为
threadcategory
显示在您的结果中,但该列不在
SELECT
列表中。嘿,您是如何在JSP中这样做的?我无法使用MoveFirst和MoveLast。此问题已使用MS Access和SQL标记。您应该编辑ti并用JSP标记它,我根本不懂那种语言。对不起o(