| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > запрос с нюансом |
| Автор: zeltek 14.6.2012, 22:22 |
| Вообщем есть таблица с 4мя полями, к примеру: марка цвет год цена ВАЗ бел 1900 150 ВАЗ бел 1900 151 ВАЗ бел 1900 200 ВАЗ бел 2000 150 нужно организовать выборку с 5ю полями: марка цвет год цена (с) цена (до) ВАЗ бел 1900 150 151 ВАЗ бел 2000 200 ВАЗ бел 2000 150 т.е. выбираюся записи с группировкой по марке,цвету и году, а также мин. и макс. цены по этим аттрибутам а теперь загвоздка: если марка, цвет и год идентичны, а список цен примерно такой :150,151,152 то цена с должна быть 150, а цена до 152 а если список такой: 150,151,152,200 то должно быть две записи : первая - первые три поля теже ценас - 150 ценадо 152, вторая первые три поля теже, ценас -200 ценадо - 0 т.е. пока цена увеличивается на 1, цикл продолжается, а если больше чем на 1, то выводится строка с ценойдо равной последней цене и цикл начинается заново... надеюсь идея понятна... |
| Автор: lafisques 15.6.2012, 07:31 | ||
Покажите запрос, который составили и не работает. Вообще вот такая конструкция вполне себе должна работать:
|
| Автор: Akina 15.6.2012, 08:15 |
Нет Понятна... Для MySQL я прредлагаю хранимую процедуру. Открываете курсор с соотв. сортировкой и в цикле обрабатываете записи, сливая найденные диапазоны в выходной поток. |
| Автор: zeltek 15.6.2012, 08:42 |
| в том то и дело, что мне не нужно просто максимальное и минимальное значение если делать как Вы предлагаете, то получится такая выборка из примера первого сообщения: ВАЗ бел 1900 150 200 ВАЗ бел 2000 150 а нужно: ВАЗ бел 1900 150 151 ВАЗ бел 1900 200 ВАЗ бел 2000 150 |
| Автор: Zloxa 15.6.2012, 10:36 | ||
| Akina, с помощью трюка с переменными MySql можно ли организовать расчет накапливающей суммы? Суть идеи така: Селф лефт джойн по правая цена = левая цена -1, считаем накапливающей суммой nullы слева - получаем критерий группировки. на оракле это выглядило бы както то так:
|
| Автор: Akina 15.6.2012, 10:42 |
| Zloxa, MySQL будет долго таращить глаза на sum() over ()... так не получится. |
| Автор: zeltek 15.6.2012, 11:09 |
| всем спасибо, решил проблему непосредственно скриптом php |