我对SQL和编码很新。
我有一个可以正常运行的SQL查询。我现在要做的就是返回该查询结果中的行数。
当前的SQL查询是:
SELECT
Progress.UserID, Questions.[Question Location],
Questions.[Correct Answer], Questions.[False Answer 1],
Questions.[False Answer 2], Questions.[False Answer 3]
FROM
Questions
INNER JOIN
Progress ON Questions.[QuestionID] = Progress.[QuestionID]
WHERE
(((Progress.UserID) = 1) AND
((Progress.Status) <> "Correct")
);
我知道我需要使用
SELECT COUNT(*)
...虽然不太确定如何将其集成到查询中。
然后我打算使用OLEDB将结果返回到VB Windows窗体应用程序。
非常感谢所有帮助。
谢谢!乔
答案 0 :(得分:1)
要计算所有记录,请使用简单的子查询;子查询必须有别名(这里我将你的子查询命名为'子查询')。
SELECT COUNT(*)
FROM (
SELECT Progress.UserID, Questions.[Question Location],Questions.[Correct Answer], Questions.[False Answer 1],
Questions.[False Answer 2], Questions.[False Answer 3]
FROM Questions
INNER JOIN Progress ON Questions.[QuestionID] = Progress.[QuestionID]
WHERE (((Progress.UserID)=1) AND ((Progress.Status)<>"Correct"))
) AS subquery;
答案 1 :(得分:0)
一种简单的方法是使用子查询:
select count(*)
from (<your query here>) as q;
在您的情况下,您还可以将select
更改为:
select count(*)
但这对聚合查询无效。
答案 2 :(得分:0)
与基于SQL的方法完全不同的方法是在行返回应用程序后对行进行计数 - 您说您正在使用VB,因此您可能正在使用数据集来保存查询结果。如果是这样,那么你只需要这段代码:
dim rowcount as integer = mydataset.mytable.rows.count