2011-01-28 46 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子句(如適用)。 。 。