Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 поиск последней строки таблицы  [new]
chekhonte
Member

Откуда:
Сообщений: 4
Всем доброго время суток!
Подскажите уважаемые Знатоки, как мне при помощи запроса SQL выбрать последние ( добавленные за последние сутки) строки. Таблица была импортированна из DBF. Ежедневно в ней появляется около 1000 новых записей, есть поле с временем записи (ЧАСЫ), но нету ДАТ. По времени видно, что последние записи были с '08:00' до '18:00' , но как их выбрать?
24 апр 14, 16:45    [15930650]     Ответить | Цитировать Сообщить модератору
 Re: поиск последней строки таблицы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
Ежедневно 00:00 очищать таблицу и выбирать по времени.
24 апр 14, 16:47    [15930671]     Ответить | Цитировать Сообщить модератору
 Re: поиск последней строки таблицы  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
ну так создайте поле типа datetime с дефолтным getdate() , при вставке записи в таблицу значение будет добавлено в это поле, по нему потом отсортируете
24 апр 14, 16:48    [15930686]     Ответить | Цитировать Сообщить модератору
 Re: поиск последней строки таблицы  [new]
chekhonte
Member

Откуда:
Сообщений: 4
Гавриленко Сергей Алексеевич
Ежедневно 00:00 очищать таблицу и выбирать по времени.

Нельзя очищать рабочую таблицу DBF, она содержит около миллиона записей и каждый день появляется около 1000 новых. Программа написанная когда то на Клиппере, связи с разработчиками утеряны, но ПО используется.
25 апр 14, 07:11    [15933064]     Ответить | Цитировать Сообщить модератору
 Re: поиск последней строки таблицы  [new]
chekhonte
Member

Откуда:
Сообщений: 4
Konst_One
ну так создайте поле типа datetime с дефолтным getdate() , при вставке записи в таблицу значение будет добавлено в это поле, по нему потом отсортируете

При использовании дефолт getdate() при вставке, одна и та же дата добавиться ко всему миллиону записей и я получу ещё одну такую же ТБЛ, а мне нужно выбрать и вставить только последние сутки.
25 апр 14, 07:19    [15933079]     Ответить | Цитировать Сообщить модератору
 Re: поиск последней строки таблицы  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
chekhonte
При использовании дефолт getdate() при вставке, одна и та же дата добавиться ко всему миллиону записей и я получу ещё одну такую же ТБЛ, а мне нужно выбрать и вставить только последние сутки.
А завтра уже сможете.

Если есть кластерный индекс, то можно пройтись циклом в порядке его убывания, как только время добавления станет больше предыдущего, значит в этом месте переход дат.
Но это извращение, конечно.
25 апр 14, 08:25    [15933142]     Ответить | Цитировать Сообщить модератору
 Re: поиск последней строки таблицы  [new]
chekhonte
Member

Откуда:
Сообщений: 4
Ruuu
chekhonte
При использовании дефолт getdate() при вставке, одна и та же дата добавиться ко всему миллиону записей и я получу ещё одну такую же ТБЛ, а мне нужно выбрать и вставить только последние сутки.
А завтра уже сможете.

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


Я примерно так и хотел , перебрать циклом, но хотел найти сначала последнюю строку, взять из неё значение времени, например 18:00 и до наименьшего значения прокрутить, но как найти последнюю строку? Последняя запись за вчерашний день добавляется в конец таблицы, она соответствует тому, с чем сравнивать, от последней строки надо чуть-чуть отмотать назад ))) Всего-то.
25 апр 14, 13:47    [15935398]     Ответить | Цитировать Сообщить модератору
 Re: поиск последней строки таблицы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
chekhonte
Я примерно так и хотел , перебрать циклом, но хотел найти сначала последнюю строку, взять из неё значение времени, например 18:00 и до наименьшего значения прокрутить, но как найти последнюю строку? Последняя запись за вчерашний день добавляется в конец таблицы, она соответствует тому, с чем сравнивать, от последней строки надо чуть-чуть отмотать назад ))) Всего-то.
Нет в mssql ни первых строк, ни последних. Добавляйте дату.
25 апр 14, 13:59    [15935509]     Ответить | Цитировать Сообщить модератору
 Re: поиск последней строки таблицы  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
chekhonte,

если есть автоинкремент ID, то можно найти последний ID такой, что время в следующем ID меньше, чем в найденном. Этот ID будет последней записью за вчерашний день.
25 апр 14, 16:12    [15936700]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить