![]() |
|
Модераторы: skyboy |
![]()
|
|
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
Привет, есть такая Б.д,
нужно определить сколько билетов было продано на ближайший рейс до Москвы. Буду признателен за помощь |
|||
|
||||
| Gluttton |
|
||||||||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Привет!
Круто, я пишу самому Samotnik'y! Возможно я уже устал, но мне кажеться, что вполне достаточно одной таблицы:
И если это так, то вот такой вот запрос:
Вернет вот такие вот данные:
Что, помоему правильно... Важно отметить, что запрос не учитывает "настоящее время", т.е. ближайший рейс запросто может оказаться в прошлом... Если это нужно учесть, то прошу указать СУБД (хотя итак видно, что не мой любимый Firebird Добавлено через 14 минут и 35 секунд Усилил тестовые данные...
Запрос вернул:
Т.е. вроде всё правильно... -------------------- Слава Україні! |
||||||||||
|
|||||||||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
Gluttton, как-то сложно получилось.
Действительно достаточно только рейсов, если я правильно понял структуры БД. А вот так не пойдет? СУБД не указана, поэтому ...
vremya_vileta хранить в varchar не очень хорошо. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Ну здрасте! Конечно же нет! Ты что думаешь, что Samotnik написал такой длинный вопрос, что бы в ответ получить одну строчку кода А на самом деле, действительно, твой запрос будет попроще, проверил на своей БД - возвращает 13... Добавлено через 2 минуты и 19 секунд Адаптировать по конкретную СУБД, можно, почитв здесь... В частности для Firebird это будет first... -------------------- Слава Україні! |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
ели бы знать под что адаптировать. Подождем что скажет Samotnik, может есть еще какие-то условия. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Парни, чтобы найти ближайший рейс, ранжироваться надо по абсолюту разницы между сейчас и датой вылета.
Вы же ищите самый ранний рейс на москву. Samotnik, арифметика дат специфична для платформы. Озвучь плиз платформу. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Gluttton |
|
||||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Я об этом честно предупреждал
Для моего случая необходимо внутри условий WHERE добавить соответсвенно: (псевдокод)
Во втором примере можно добавить десять минут к правой части условия и это будет соответсововать тому, что например до отправки осталось десять минут и посадка окончена... -------------------- Слава Україні! |
||||||
|
|||||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Это будет ближайший будущий рейс что ближе к нулю - минус единица или шесть? Вооще я просто к словам придираюсь -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
Да уж, что-то мы с текущей датой ... забыли.
Ждем Samotnik для разъяснений задачи. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Ага приходишь так себе на ж\д воказл, купил белет на ближайший поезд, вышел на пирон... а поезд то оказывается ушел ещё два часа назад Всё правильно - никаких двояких толкований! -------------------- Слава Україні! |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
Deniz, твой способ не работает ((((
Gluttton, СПАСИБО !!!! |
|||
|
||||
| Zloxa |
|
||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
ухты, Samotnik на ораклю перешел ;)) Что ж ты так сразу и не сказал?
Для пущего перфомансу запросу добавить индекс:
Но лучше, конечно, дату хранить как дату а не как строку. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |