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

Откуда: USA, PA
Сообщений: 457
Всем добрый день, имеется таблица vehicle_ping с наименованием автомобилей, и их координатами которая обновляестя, через спец прибор установленный в машине, мне необходимо иметь две последние точки нахождения каждого из автомобилей, в сервисе каждую минуту выполняется вставка записей из vehicle_ping в таблицу gpsdata, это делается вызовом sp в которой просто вствляюся данные из одной таблицы в другую, все бы хорошо, но т.к. Автомобилей больше 100 и вставка происходит каждую минуту, а испоьзоваться будут только 2 последние записи, то хотелось бы удалять из таблицы gpsdata, ненужную информацию. Спасибо за омошь
4 фев 12, 21:35    [12033801]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить из таблицы все записи по каждому наименованию за исключением 2х последних.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31990
Gc2112,

Вы бы скрипт таблицы запостили.
4 фев 12, 21:45    [12033836]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить из таблицы все записи по каждому наименованию за исключением 2х последних.  [new]
AndreTM
Member

Откуда: Где-то в вологодских лесах...
Сообщений: 6900
А зачем удалять на ходу-то?
Надо: либо изменить ХП таким образом, чтобы производился не INSERT в gpsdata, а UPDATE "более ранней" по времени записи из всего двух имеющихся; либо "для использования" делать SELECT для двух последних (по времени) записей каждой машины в gpsdata, а удалять ненужные записи из таблицы - при обслуживании по некоторому расписанию...
4 фев 12, 23:07    [12034090]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить из таблицы все записи по каждому наименованию за исключением 2х последних.  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8880
Gc2112,

1) Если софт типа антора или ещё чего, то вряд ли вам стоит вмешиваться в таблицы
2) Если вы не представляете себе как эта хреновина крутится - ну не трогайте её.
3) Если вам очень неймётся, то, наверняка, у каждой строки таблички есть либо поле даты и времени (дата и время снятия последнего показания gps/glonas трекера; дата и время поступления этой информации в таблицу; ... ). Или поле идентификатора строки, которое постоянно только увеличивается. Ну удалите все, кроме двух последний (удалить все, кроме тех, которые присутствуют в списке первых двух, из отсортированных по дате).
4) Я в вопросе удаления - чиста как йожъ! -
Рудман, 101 урок самбо (кажется)
"Семь раз отмерь,- один отреж" - подумал крошк Ёж. Подсечкой Волка победил - самбиста не тревож...
5 фев 12, 12:25    [12035110]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить из таблицы все записи по каждому наименованию за исключением 2х последних.  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8880
SIMPLicity_
Gc2112,

1) Если софт типа антора или ещё чего, то вряд ли вам стоит вмешиваться в таблицы
2) Если вы не представляете себе как эта хреновина крутится - ну не трогайте её.
3) Если вам очень неймётся, то, наверняка, у каждой строки таблички есть либо поле даты и времени (дата и время снятия последнего показания gps/glonas трекера; дата и время поступления этой информации в таблицу; ... ). Или поле идентификатора строки, которое постоянно только увеличивается. Ну удалите все, кроме двух последний (удалить все, кроме тех, которые присутствуют в списке первых двух, из отсортированных по дате).
4) Я в вопросе удаления - чиста как йожъ! -
Рудман, 101 урок самбо (кажется)
"Семь раз отмерь,- один отреж" - подумал крошк Ёж. Подсечкой Волка победил - самбиста не тревож...


К третьему пункту в алгоритм - забыл - в конце дописать - для каждой машины.
5 фев 12, 12:26    [12035113]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить