Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Хелп, плз, с запросом. / 16 сообщений из 16, страница 1 из 1
13.12.2013, 01:20
    #38499369
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
Таблица
Код: sql
1.
  CREATE TABLE "data" ("DT" DATETIME, "Last" FLOAT)



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

нужно выбрать все записи, у которых значение DT меньше, чем у предыдущего по rowid элемента

Пытался как-то так...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT * FROM
(SELECT a.rowid,a.DT,b.DT FROM data as a
 LEFT JOIN 
  (SELECT b.rowid,b.DT FROM data as b
   WHERE b.rowid>a.rowid
   ORDER BY rowid
   LIMIT 1)
)
WHERE b.DT<a.DT
ORDER BY rowid


знаю, что абсолютно коряво. но не знаю как правильно

хелп, плз.
...
Рейтинг: 0 / 0
13.12.2013, 05:24
    #38499425
Хелп, плз, с запросом.
Удаления из таблицы бывают? Если да, то глупо требовать, чтобы строка с большей датой имело больший же ROWID.
...
Рейтинг: 0 / 0
13.12.2013, 05:40
    #38499427
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
Процедура временная, пока не отловил баг.
В реальности в таблицу записываются новые записи и каждое последующее DT больше предыдущего добавленного. ВСЕГДА.
Но из-за бага изредка "вставляются" старые значения. Их пока ручками надо удалять.
Т.е. местами пока таблица выглядит так:
1 10:00 123
2 10:01 120
3 9:00 100
4 10:02 122

Вот и хочу получить SELECTом элементы, которые хочу удалить. Понятно, если база мне "перетрясет" rowid, то этот костыль не будет работать. Однако, если в указанном выше примере удалить rowid=3 то все будет ок.
...
Рейтинг: 0 / 0
13.12.2013, 06:35
    #38499439
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
Чем меньше ты будешь смотреть на ROWID - тем лучше.
В настоящих проектах эта фигня вообще никогда не используется.
Я понимаю что людям привыкшим к FoxPro и Excel номера строк очень важны - но в реальности они вредны.
Если ты забудешь о ROWID вообще - станешь намного счастливее и твоя база станет намного быстрее.
...
Рейтинг: 0 / 0
13.12.2013, 10:55
    #38499673
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
парни, вы чего пристали к rowid.
написал же, что данное решение - временный "костыль" пока не отловлен баг. потом rowid использовать не нужен будет.
сейчас ВРЕМЕННО, пока баг не отловлен, единственный вариант "поймать" кривые записи можно только с использованием rowid.
помогите, пжл, с запросом.
...
Рейтинг: 0 / 0
13.12.2013, 10:56
    #38499676
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
более того, спасибо Owl, использовать rowid и не предполагается в изначальном и конечном варианте.
еще раз. решение временное, база тестовая.
...
Рейтинг: 0 / 0
13.12.2013, 13:29
    #38499972
Хелп, плз, с запросом.
Уж если атк охото, то пробуй использовать [NOT] EXISTS.
Попробуй оба условия (b.rowid>a.rowid и b.DT<a.DT) писать на одном уровне запроса...

Условие " чем у предыдущего по rowid" должно выполняться обязательно? То есть проверять нужно только ближайший снизу? Или все ?
...
Рейтинг: 0 / 0
13.12.2013, 23:16
    #38500654
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
meneoболее того, спасибо Owl, использовать rowid и не предполагается в изначальном и конечном варианте.
еще раз. решение временное, база тестовая.И во временных решениях не надо использовать дурные решения.

Я не вижу чем тебе не нравится таблица:
DT Last10:00 12310:01 1209:00 10010:02 122
Мне она кажется вполне правильной и хорошей. Покажи что это не так без использования ROWID.
...
Рейтинг: 0 / 0
13.12.2013, 23:53
    #38500679
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
с rowid таблица выглядит так:
rowidDTlast110:00123210:0112039:00100410:02122
для всех рядов, начиная со 2го, кроме 3го выполняется два условия
rowid(n)>rowid(n-1)
DT(n)>DT(n-1)

где в () указан номер ряда.

так вот и надо выбрать ряды у которых DT меньше DT первого предыдущего по rowid

спс
...
Рейтинг: 0 / 0
14.12.2013, 00:04
    #38500684
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
meneoс rowid таблица выглядит так:Еще раз повторяю: ЗАБУДЬ ПРО ROWID!!!
...
Рейтинг: 0 / 0
15.12.2013, 03:36
    #38501211
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
thx for help, folks!
...
Рейтинг: 0 / 0
15.12.2013, 03:46
    #38501215
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
парни, еще есть один запрос. может с ним тоже поможете?
есть таблица
DT(datetime) Number(integer)
надо выбрать все записи, у которых DT меньше, чем DT элемента ближайшего предыдущего (по полю Number) элемента.

например, в таблице

DTNumber10.11.2001 19.11.2001 413.11.2001 511.11.2001 212.11.2001 3

этому условию удовлетворяет строка 2 (N=4, DT=9.11.2001), потому у ближайшего предыдущего (по полю Number), это срока 5 (N=3, DT=12.11.2001) DT больше.
для всех остальных (2,3 и 5) DT больше предыдущих по номеру (1,2 и 4 соответственно).

Спасибо.
...
Рейтинг: 0 / 0
15.12.2013, 05:18
    #38501240
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
А где скрипты для создания тестовых данных?
...
Рейтинг: 0 / 0
15.12.2013, 05:36
    #38501242
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
???
...
Рейтинг: 0 / 0
15.12.2013, 17:54
    #38501461
meneo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
какие скрипты?

А есть кто-то действительно шарящий в SQL запросах на этом форуме? Буду признателен за помощь с запросом. Он же, вроде, не сложный?
...
Рейтинг: 0 / 0
15.12.2013, 18:04
    #38501468
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хелп, плз, с запросом.
meneoкакие скрипты?

А есть кто-то действительно шарящий в SQL запросах на этом форуме? Буду признателен за помощь с запросом. Он же, вроде, не сложный?Вот эти скрипты: 13601944

Если запрос не сложный, чтож ты спрашиваешь тогда?
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Хелп, плз, с запросом. / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]