2010-07-14 4 views
0

У меня есть данные, как это. Ниже приведены примеры данных.Извлечь запись из таблицы на разницу дат

alt text http://a.imageshack.us/img695/441/custoemrids.png

Я хочу, чтобы получить все это CustomerIDs который имеет дату диф 2 часа в DateCreated по расследованию.

Например CustomerId 10602 имеет 3 запроса. Если разница во времени составляет 2 часа в любом из этих трех запросов, то этот CustomerId должен быть в моем результирующем наборе. То же самое для других Клиентов.

Благодаря

+1

Я не совсем понимаю ваш вопрос. Можете ли вы рассказать нам о своих ожидаемых результатах? – northpole

+0

DateCreated - это 2 часа «разных» от чего? (Если текущая дата/время, похоже, будут выбраны все ваши данные выборки.) –

+0

Вы пытаетесь получить все строки, где значение DateCreated находится в пределах 2 часов от текущего времени? Против чего вы хотите сравнить значения DateCreated? – Thomas

ответ

0

Это предполагает, что EnquiryId является PK таблицы. Я также предположил, что вы хотите подсчитать пункты в пределах два часа друг от друга.

Select Distinct T1.CustomerId 
From Table As T1 
Where Exists (
       Select 1 
       From Table As T2 
       Where T2.CustomerId = T1.CustomerId 
        And T2.EnquiryId <> T1.EnquiryId 
        And Abs(DateDiff(hh, T1.DateCreated, T2.DateCreated)) <= 2 
       ) 
+0

@ Ardman - Да. Исправлено это в моем сообщении, а не через комментарий. – Thomas

+0

Спасибо @Thomas за ответ. – Kashif

0
SELECT [CustomerId] 
    FROM [Table] 
WHERE [DateCreated] >= DATEADD(hour, -2, GETDATE()) 
    AND [CustomerId] = xxx; 
+0

Спасибо за ваш ответ. Разница должна быть среди запросов одного и того же Клиента не с текущей датой. – Kashif

+0

А, тогда ты хочешь ответа Томаса. : o) –

+0

@Ardman благодарит за ответ. Ваш ответ правильный, мой вопрос был неоднозначным. – Kashif