У меня следующая ситуация:
В таблице у меня есть 4 столбца:
CommentsTBL:
ID int
Data datetime
Hour Varchar
Comment Varchar
Столбец Hour имеет тип varchar, не спрашивайте меня, почему ....
Учитывая конкретную дату и час из таблицы, мне нужно найти предыдущую и следующую запись.Если я найду один из них (предыдущий или следующий), будет легко получить другой, используя ту же логику.
В качестве примера:
ID Data Hour Comment
1. 2011-01-12 17:00 SomeComments1
2. 2011-01-14 10:00 SomeComments3
3. 2011-01-14 11:00 SomeComments4
4. 2011-01-13 14:00 SomeComments2
Предыдущая дата для ID 4 будет ID 1, а следующая будет ID 2.
Я нашел решениедля этого, но я хочу посмотреть, есть ли у кого-нибудь из вас что-то лучше, может быть, использовать только один SELECT.Это для предыдущего:
SELECT
Data,
MAX(Hour) Hour
FROM
CommentsTBL
WHERE
Data in (SELECT
MAX(Data)
FROM
CommentsTBL
WHERE
Data < MyDate or (Data = MyDate and Hour < MyHour)
)
GROUP BY
Data
Спасибо.