2010-02-19 3 views
1

У меня есть таблица, которая содержит связанные записи (несколько ревизий одной и той же записи). Каждая запись имеет поле строки, напоминающее дату (дату, время и микро-время). Я хочу выбрать все записи, которые старше определенной даты. Если запись имеет соответствующую запись, более позднюю, чем конкретная дата, я не хочу выбирать какие-либо из этих связанных записей. Любые идеи для этого выбора? В конце концов, это будет оператор REMOVE.Выберите Mulitple Records на основе значения столбца одной записи

Edit: Некоторые Примеры Ряды

id shared_id date       type  other_data... 
1  2   2010-01-01 01:02:03.1234567 original ... 
2  3   2010-01-15 11:12:03.1234733 original ... 
3  2   2010-02-01 03:04:04.5465654 amendment ... 

Если моя дата отсечения была «2010-01-31», я хотел бы, чтобы выбрать ID # 2 только потому, что идентификатор # 1 имеет поправку новее, чем предельный срок.

+0

Вы могли бы добавить некоторые данные из своей базы данных? – Dominik

ответ

0

Может быть, вы можете попробовать функцию DATEDIFF(), проверить это: Link 1

Или это один: Link 2

Или, может быть, вы можете попробовать классический запрос (SELECT из таблицы, где данные < = anotherdata), но в этом случае вам нужно преобразовать как данные в формате временных меток

0
DELETE from tablename where relatedField = 'relatedValue' AND dateField <= dateToDeleteFrom 

что-то вдоль этих линий должно делать то, что вам нужно это делать, если я понимаю ваш SCENA рио. Если вы предоставите образец данных, я смогу настроить утверждение, чтобы более точно представлять ваши потребности, но я думаю, что это хорошая отправная точка.

НТН, Jc

1

Я нашел этот link помогает мне генерировать оператор выбора.

SELECT DISTINCT T.shared_id,T.date,T.id 
FROM table T WHERE T.date = ( 
SELECT MAX(date) FROM table WHERE shared_id = T.shared_id) 
AND T.date < 'my_cut_off_date_string' 

Это, похоже, работает на меня. Спасибо за помощь каждого.

Смежные вопросы