註冊會員
|
請問1個VB6+ACCESS SQL 的一個簡易問題
我的問題是: 有1個資料表 [專門匯入1分線] 如下:
(通常每個DATE 會有300行 的1分線; 但是我發覺資料表的總筆數 不是300的整數倍: 所以必須找出到底是那1個交易日缺少筆數???)這次資料表 總共有1,303,035筆
Date,Time,Open,High,Low,Close,Volume
2001/01/02,08:46:00,4702,4719,4700,4710,67
2001/01/02,08:47:00,4703,4729,4703,4729,30
2001/01/02,08:48:00,4723,4744,4723,4738,24
2001/01/02,08:49:00,4730,4740,4730,4737,25
2001/01/02,08:50:00,4735,4735,4730,4730,21
2001/01/02,08:51:00,4729,4732,4729,4732,20
2001/01/02,08:52:00,4732,4738,4732,4738,23
2001/01/02,08:53:00,4738,4740,4737,4740,11
2001/01/02,08:54:00,4738,4740,4735,4735,26
2001/01/02,08:55:00,4729,4737,4726,4737,29
2001/01/02,08:56:00,4730,4730,4724,4724,17
2001/01/02,08:57:00,4721,4730,4720,4722,34
2001/01/02,08:58:00,4728,4730,4728,4728,9
2001/01/02,08:59:00,4729,4729,4723,4725,10
2001/01/02,09:00:00,4730,4730,4725,4725,18
2001/01/02,09:01:00,4731,4738,4730,4738,22
2001/01/02,09:02:00,4740,4755,4740,4755,39
2001/01/02,09:03:00,4761,4795,4760,4790,81
2001/01/02,09:04:00,4779,4789,4779,4785,56
...
...
2018/08/07,13:45:00,10969,10969,10967,10968,702
我的問題是: 我是用VB6寫成以下指令,但是會當在 下方紅色的那一行-- 因為 Count(日期) 根本不是欄位名稱!
請問: 我應該何列印出結果!
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset
With RS
If .State = adStateOpen Then RS.Close
.ActiveConnection = CN1
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Source = "SELECT 日期 ,COUNT(日期) from [專門匯入1分線] GROUP BY 日期 ORDER BY 日期 "
.Open
End With
Dim m_num As Integer
m_num = FreeFile
Open App.Path & "\[專門匯入1分線]_各日期的筆數.TXT" For Output As #m_num
If RS.RecordCount > 0 Then
RS.MoveFirst
Do While Not RS.EOF
Print #m_num, RS("日期"), Count(日期) '<==
RS.MoveNext
Loop
End If
Close #m_num
-------
在多年前 就知道這個5個函數 會有問題~所以我一直都是用 傳統的逐筆算
這次 總共有1,303,035筆 , 想了解
如何要列印出 每個交易日各自有幾筆 我只需要列出 2個欄位如下:
Date , 筆數
------------- --------
2001/01/02, 300
2001/01/03, 300
2001/01/04, ....
....
....
2018/08/07, ....
AVG (平均)
COUNT (計數)
MAX (最大值)
MIN (最小值)
SUM (總合)
--下方是截錄網路上的 SQL語法:----------------------
在上一頁有提到, COUNT 是函數之一。由於它的使用廣泛, 我們在這裡特別提出來討論。基本上, COUNT 讓我們能夠數出在 表格中有多少筆資料被選出來。它的語法是:
SELECT COUNT("欄位名")
FROM "表格名"
舉例來說,若我們要找出我們的範例表格中有幾筆 store_name 欄不是空白的資料時,
Store_Information 表格
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
我們就鍵入,
SELECT COUNT(store_name)
FROM Store_Information
WHERE store_name is not NULL
結果:
Count(store_name)
4
"is not NULL" 是 "這個欄位不是空白" 的意思。
-------
COUNT 和 DISTINCT 經常被合起來使用,目的是找出表格中有多少筆不同的資料 (至於這些資料實際上是什麼並不重要)。 舉例來說,如果我們要找出我們的表格中有多少個不同的 store_name,我們就鍵入,
SELECT COUNT(DISTINCT store_name)
FROM Store_Information
結果:
Count(DISTINCT store_name)
3
------------------------------------------------------
此帖於 2018-08-20 03:41 PM 被 飛行船大大 編輯.
|