2013-12-31 3 views
0

Я постараюсь быть таким конкретным, как я могу здесь, так что вот запрос с использованием 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 он возвращает это: enter image description here

Это показывает, что у меня есть 4 строки (# нитей), а число 5,2,1,1 это число сообщений с указанными потоками. Здесь я пытаюсь получить resultet для возврата 4 вместо 9, поэтому я могу зацикливать его без недопустимой ошибки состояния курсора.

rs.last(); 
int row = rs.getRow(); 

, который возвращает 8, поэтому я угадываю, как его вернуть, сколько всего было выполнено. так как я могу заставить его вернуть 4, аналогичный функции COUNT?

Большое спасибо!

+0

Как вы знаете, строки, возвращающие 'TotalPost = 1', не гарантируют, что на самом деле есть строка. Использование LEFT JOIN означает, что строки в «MsPosts» не требуются, поэтому, если нет строки, она просто подсчитывает одну строку в «MsThread». Я также сомневаюсь, что это запрос, который вы выполняете, указав, что 'threadcategory' отображается в ваших результатах, но столбец не входит в ваш список' SELECT'. –

ответ

0

rs, я предполагаю, является результирующим набором записей, который возвращает ваш SQL? Если это так, вы можете сделать:

rs.MoveFirst 
rs.MoveLast 

X = rs.RecordCount 

В этом случае X должен быть равен 4, так как у вас есть 4 записи в вашем наборе записей.

Я не думаю, что вы хотите использовать «строку» в качестве имени переменной, так как это зарезервированное слово и, вероятно, вызовет проблемы при попытке ссылаться на него. Сделайте вашу жизнь проще и назовите ее «RowX» или что-то, что не зарезервировано.

+0

Эй, как вы это делаете в JSP? Я не могу использовать MoveFirst и MoveLast. – kenlz

+0

Этот вопрос был отмечен MS Access и SQL. Вы должны отредактировать ti и пометить его JSP, я не знаю этого языка вообще. Сожалею. : О ( –

Смежные вопросы