![]() |
|
Модераторы: LSD |
![]()
|
|
| xaoc2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Репутация: нет Всего: нет |
Не могу составить запрос.
Есть таблица представляющяя динамику цен: +---------------------------------------------------------------+ | supplier_id | product_id | date | price | +-----------------------------------------------------+--------+ | 1 | 10 | 20061111 | 130 | +---------------------------------------------------------------+ | 1 | 10 | 20061112 | 120 | +---------------------------------------------------------------+ | 1 | 10 | 20061113 | 100 | +---------------------------------------------------------------+ | 1 | 10 | 20061114 | 100 | +---------------------------------------------------------------+ | 1 | 9 | 20061111 | 100 | +---------------------------------------------------------------+ | 1 | 9 | 20061112 | 105 | +---------------------------------------------------------------+ | 1 | 9 | 20061112 | 105 | +---------------------------------------------------------------+ | 1 | 9 | 20061112 | 100 | +---------------------------------------------------------------+ Необходимо выбрать строки только если цена изменилась, то есть например четвёртая и предпоследняя строка не должна попасть в запрос. То есть: +---------------------------------------------------------------+ | supplier_id | product_id | date | price | +-----------------------------------------------------+--------+ | 1 | 10 | 20061111 | 130 | +---------------------------------------------------------------+ | 1 | 10 | 20061112 | 120 | +---------------------------------------------------------------+ | 1 | 10 | 20061113 | 100 | +---------------------------------------------------------------+ | 1 | 9 | 20061111 | 100 | +---------------------------------------------------------------+ | 1 | 9 | 20061112 | 105 | +---------------------------------------------------------------+ | 1 | 9 | 20061112 | 100 | +---------------------------------------------------------------+ Сервер MySQL 4.1.x Это сообщение отредактировал(а) xaoc2 - 16.4.2007, 12:35 |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 5 Всего: 252 |
ИМХО одним запросом это не сделать - нужен проход по всем записям.
|
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 1 Всего: 22 |
xaoc2,
Уточни условия: какой сервер, выборка - для 1 product_id или всех? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Можно было бы создавать нечто типа
Однако такой запрос выкинет и строку 4. Вообще в рамках TSQL таких вещей как сравнение двух записей выборки не делают. Реализуй это хранимой процедурой. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| xaoc2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.10.2004 Репутация: нет Всего: нет |
Подредактировал условие.
Этот запрос сгрупирует всё по цене , а цена может повториться, так как она может опуститься, а затем подняться до прежнего уровня. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
JOIN есть в версии 4.х?
Тут делается "замыкание" таблицы саму на себя - получается набор пар цен для каждого товара. Вот только логику запроса надо доработать - тебе ведь не надо различие и между сегодня и завтра, и между сегодня и послезавтра! вот только дата у тебя отличается на один день для одного и того же товара, или могут быть записи с одинаковой датой? |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 6 Всего: 35 |
date должен отличаться хотя бы на 1 минуту. -------------------- Никогда не говори никогда |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |