2011-01-28 48 views
0

我想弄清楚如何在填充listview网格之前获取最大记录数。我正在使用Oracle 10g数据库,我试过了:使用读取记录计数()

SELECT COUNT(*) as countNum, status, date, theTitle, theMessage, date2 " & _ 
     "FROM blah blah... 

messagebox.show(dr(0)) 

但是这样会导致SQL查询崩溃。它看起来好像我即将把任何与“计数”有关的任何东西放在我的查询中,否则它会崩溃,所以有没有其他方法可以查看除此之外还有多少记录?

谢谢! :O)

大卫

回答

2

使用分析计数,像这样: SELECT COUNT(*)在()作为countNum,状态,日期,theTitle,theMessage,date2的 “& _ ” FROM等等等等

+0

这工作,但我似乎不能从查询中拉它? ** select status,date,theTitle,theMessage,date2,COUNT(*)over()countNum FROM Blah blah ... MessageBox.Show(dr(4))** – StealthRT 2011-01-28 14:49:41

+0

这是什么意思,你不能拉出来。你的意思是你无法获取结果记录? – 2011-01-28 14:51:24

1

当使用聚合函数,如count你需要使用一个group by子句中的所有结果集是一个非集合函数的结果,这些领域。

0

我在写你的查询一次WITH条款
中的一种动态视图,并结合计数并在一次选择中选择此查询。

WITH query AS (
SELECT * 
FROM foobar 
WHERE foo = 1 
) 
SELECT 
    (SELECT COUNT(*) FROM query) cnt, 
    status, 
    date, 
    theTitle, 
    theMessage 
FROM query 
0

我会用这个检索记录的简单计数。不知道为什么你会想要在这个操作中拉动任何其他领域。然后

SELECT COUNT(YourPrimaryKey) As RecordCount 
FROM YourTable 
GROUP BY YourPrimaryKey 

在代码中使用cmd.ExecuteScalar检索结果:如果有选择标准,应用WHERE或HAVING子句(如适用)。 。 。