2012-01-17 2 views
1

나는 내 쿼리에 모든 반환 된 레코드의 수를 추가하려고하지만, 몇 가지 문제에 봉착했습니다. 매우 큰 쿼리이므로 게시하지 않을 것입니다. 이 실행할 때MySQL은/​​클래식 ASP - 기록 카운트

, 나는 모든 기록하지만 카운트 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 
+3

당신이/우리가 알아야 할 모든 최종 SQL 절입니다. – Hamish

+0

당신은'limitClause'는'GROUP BY'에 일을 무엇입니까? 그런 다음 선택 - –

+0

나는 내가 PHOTOID 열 – TheCarver

답변

2

그것은 1을 반환

이 상단 부분입니다. 당신의 group by 절과 photoId 열을 제거하고, 당신은 당신의 레코드 수를 얻을 수 있습니다.

group by은 "각각의 PhotoID에 대해 null이 아닌 수인 PhotoID을 계산합니다."라고 알려줍니다. 정의에 의하면, 그 1

+0

받고 있어요 그건, p.campbell @ 모른다. MySQL은 집계 함수가 사용 되더라도'group by' 절에 포함되지 않은 컬럼을 선택할 수있게한다. 그것은 내가하고있는 유일한 RDBMS입니다. 어쨌든, 그 레코드가 당신을 줄 것이다 무엇을 실현 : 같은 기록은 각각'photoID'과 함께 계산합니다. 87 개의 레코드가 있다면, 각 행은'87, photoID'가 될 것입니다. – TheCarver

+0

@MartinG을 선택해야하는 이유 도움 – Eric

0

이 시도의 :

selectClause = "SELECT COUNT(*) AS totalRecCount, photoID FROM photoSearch " 
whereClause = "WHERE photoStatus = 'Live' " 
groupBy = "GROUP BY photoID " 
SQL = selectClause & whereClause & groupBy 
cmdConn.CommandText = SQL