我有一個包含報告及其創建日期/時間的表。我想要創建一個圖表來計算在兩個時間段內間隔10分鐘創建的報告數量:8:00 AM-9:00AM和1:00 PM-2:00PM。從訪問中的日期時間字段中選擇時間範圍
這是我想運行一個查詢的例子:
SELECT
s.StudyStartDateTime AS "8:00 - 8:10",
s.StudyStartDateTime AS "8:10 - 8:20",
s.StudyStartDateTime AS "8:20 - 8:30",
s.StudyStartDateTime AS "8:30 - 8:40",
s.StudyStartDateTime AS "8:40 - 8:50",
s.StudyStartDateTime AS "8:50 - 9:00",
s.StudyStartDateTime AS "1:00 - 1:10",
s.StudyStartDateTime AS "1:10 - 1:20",
s.StudyStartDateTime AS "1:20 - 1:30",
s.StudyStartDateTime AS "1:30 - 1:40",
s.StudyStartDateTime AS "1:40 - 1:50",
s.StudyStartDateTime AS "1:50 - 2:00"
FROM
dbo_Study_ViewX211_Rpt AS s
WHERE FORMAT("8:00 - 8:10", 'hh:mm:ss') BETWEEN "08:00:00" AND "08:09:59"
AND FORMAT("8:10 - 8:20", 'hh:mm:ss') BETWEEN "08:10:00" AND "08:19:59"
AND FORMAT("8:20 - 8:30", 'hh:mm:ss') BETWEEN "08:20:00" AND "08:29:59"
AND FORMAT("8:30 - 8:40", 'hh:mm:ss') BETWEEN "08:30:00" AND "08:39:59"
AND FORMAT("8:40 - 8:50", 'hh:mm:ss') BETWEEN "08:40:00" AND "08:49:59"
AND FORMAT("8:50 - 9:00", 'hh:mm:ss') BETWEEN "08:50:00" AND "08:59:59"
AND FORMAT("1:00 - 1:10", 'hh:mm:ss') BETWEEN "01:00:00" AND "01:09:59"
AND FORMAT("1:10 - 1:20", 'hh:mm:ss') BETWEEN "01:10:00" AND "01:19:59"
AND FORMAT("1:20 - 1:30", 'hh:mm:ss') BETWEEN "01:20:00" AND "01:29:59"
AND FORMAT("1:30 - 1:40", 'hh:mm:ss') BETWEEN "01:30:00" AND "01:39:59"
AND FORMAT("1:40 - 1:50", 'hh:mm:ss') BETWEEN "01:40:00" AND "01:49:59"
AND FORMAT("1:50 - 2:00", 'hh:mm:ss') BETWEEN "01:50:00" AND "01:59:59"
遺憾的是,似乎訪問不能告訴現場,我想格式中的格式化功能是指到查詢中相同名稱的字段。在上面的例子中,我認爲這是因爲Access將它視爲字符串文字。但是,這不起作用,或者:
SELECT
s.StudyStartDateTime AS first
FROM
dbo_Study_ViewX211_Rpt AS s
WHERE FORMAT(first, 'hh:mm:ss') BETWEEN "08:00:00" AND "08:09:59"
訪問提示我輸入'first'的值。
我覺得我會以這種錯誤的方式開始。任何人都可以將我指向正確的方向嗎?我通過ODBC使用Jet引擎,但實際上數據存儲在SQL Server 2005中,所以如果有必要,我想我可以編寫一個傳遞查詢。不過,理想情況下,我希望它能在Access中工作。
編輯:
需要明確的是,在下列情況工作:
SELECT s.StudyStartDateTime AS first
FROM dbo_Study_ViewX211_Rpt AS s
WHERE FORMAT(StudyStartDateTime,'hh:mm:ss') Between "08:00:00" And "08:09:59";
然而,這並不讓我多次選擇多個條件下,相同的字段。
在http://office.microsoft.com/en-us/access/HA012288391033.aspx#examples第一個例子表明,包裹在方括號字段的別名是引用一個記錄源的正確方法,但下面仍導致提示輸入的值「第一」:
SELECT s.StudyStartDateTime AS first
FROM dbo_Study_ViewX211_Rpt AS s
WHERE FORMAT([first],'hh:mm:ss') Between "08:00:00" And "08:09:59";
編輯II:
的StudyStartDateTime的幾個記錄的內容的一個例子:
29/11/2007 8:06:00 AM
30/11/2007 8:09:01 AM
05/12/2007 8:06:51 AM
06/12/2007 8:07:21 AM
訪問認爲這網絡作爲「日期/時間」數據類型。
我的最終目標是繪製每個區間的計數。我認爲這樣做的最簡單方法是簡單地選擇每個日期/時間作爲不同的別名。例如:
8:00-8:10 8:10-8:20 8:20:8:30 ...
=======================================
8:01
8:03
8:15
8:23
8:28
8:28
...
你看過PARTITION()嗎? – 2009-09-03 01:44:49