我正在尝试将所有返回记录的计数添加到我的查询中,但存在一些问题。这是一个非常大的查询,所以我不会发布所有内容。
执行此操作时,我获取所有记录,但计数rs.Fields(“totalRecCount”)始终返回1.可以有人看到我做错了并建议修复吗?
这是最重要的部分:
Set cmdConn = Server.CreateObject("ADODB.Command")
Set cmdConn.ActiveConnection = Conn
cmdConn.Prepared = True
Const ad_varChar = 200
Const ad_ParamInput = 1
Const ad_Integer = 3
selectClause = "SELECT COUNT(photoID) AS totalRecCount, photoID FROM photoSearch "
whereClause = "WHERE photoStatus = 'Live' "
这是底部:
groupBy = "GROUP BY photoID "
orderClause = "ORDER BY dateCreated DESC "
SQL = selectClause & whereClause & groupBy & orderClause & limitClause
cmdConn.CommandText = SQL
Set rsPhotoSearch = cmdConn.Execute
答案 0 :(得分:2)
它返回1,因为你按照你想要计算的东西进行分组。删除group by
条款和photoId
列,您将获得记录数。
group by
告诉MySQL,“对于每个不同的PhotoID
,计算非空PhotoID
的数量。”根据定义,那是1。
答案 1 :(得分:0)
试试这个:
selectClause = "SELECT COUNT(*) AS totalRecCount, photoID FROM photoSearch "
whereClause = "WHERE photoStatus = 'Live' "
groupBy = "GROUP BY photoID "
SQL = selectClause & whereClause & groupBy
cmdConn.CommandText = SQL