2010-04-22 96 views
0

可能重複:
SQL Server Database query helpSQL Server數據庫查詢幫助

嗨,

我有沒有設法解決了很長一段時間的問題,我非常絕望。我有一個名爲'ProcessData'的表和名爲'Process_Name'(數據類型:nvarchar(50)),'Start_At'(DataType:DateTime)和'End_At'(數據類型:約會時間)。

我需要知道每個'時間間隔'(比方說1分鐘)多少個進程(Process_Name = PN)已打開(等於'Start_at'列並且等於'End_At'列)在這段時間內(它可以是具有相同數據的幾行)。

有誰知道如何使這個查詢沒有'for'循環? (它自己會促進時間),(答案將是一個包含兩列的表格(1.檢查發生的時間2.此時打開的進程的數量)和每行的時間間隔「(在本例中爲1分鐘)

(如果它的幫助,我與C#.net工作)

非常感謝,

+1

請不要再問同樣的問題詢問。如果你有更多的細節,你可以編輯原件並更新其中的信息。 http://stackoverflow.com/questions/2661824/sql-server-database-query-help – Oded 2010-04-22 08:31:16

回答

0

下應該從返回的過程中的檢查時間和NUMER表中起始時間小於或等於所請求的時間點並且結束時間大於或等於:

DECLARE @pot DATETIME 

-- SET @pot TO THE POINT OF TIME YOU WANT THE DETERMINE THE ENTRIES FOR 

SELECT @pos, COUNT(*) FROM ProcessData 
WHERE @pot BETWEEN Start_At AND End_At 

這假定您使用的是SQL Server - 但在其他方言中可能存在一些等同物。

您也可以延長此時間間隔,但要做兩次檢查,一次是「起始時間點」,另一次是「結束時間點」。

+0

謝謝,你能給我一個使用'時間間隔'的例子,因爲我在這類東西中是很新的。謝謝 – menacheb 2010-04-22 08:40:56