SQL Server数据库查询帮助

问题描述:

可能重复:
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://*.com/questions/2661824/sql-server-database-query-help – Oded 2010-04-22 08:31:16

下应该从返回的过程中的检查时间和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

看看这两个SO问题/答案SQL Server related questionsql query to solve the following

他们都处理同样的问题...

+0

谢谢,它看起来很像,我会检查它。 – menacheb 2010-04-22 11:03:41