powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с логикой запроса.
25 сообщений из 39, страница 1 из 2
Помогите с логикой запроса.
    #38487041
hedgehogelez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую форумчане. Есть такая таблица:

calc_month номер месяца по порядку rank он и есть ранг :-)
Так вот никак до меня не дойдет, как выбрать все поля где rank > 6 встречается восемь месяцев подряд, типа
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
...  EXISTS (SELECT 1 FROM `mem_net` WHERE `mem_net`.`calc_month` = 53 AND `mem_net`.`rank` > 6 ) AND
  EXISTS (SELECT 1 FROM `mem_net` WHERE `mem_net`.`calc_month` = 52 AND `mem_net`.`rank` > 6 ) AND
  EXISTS (SELECT 1 FROM `mem_net` WHERE `mem_net`.`calc_month` = 51 AND `mem_net`.`rank` > 6 ) AND
  EXISTS (SELECT 1 FROM `mem_net` WHERE `mem_net`.`calc_month` = 50 AND `mem_net`.`rank` > 6 ) AND
  EXISTS (SELECT 1 FROM `mem_net` WHERE `mem_net`.`calc_month` = 49 AND `mem_net`.`rank` > 6 ) AND
  EXISTS (SELECT 1 FROM `mem_net` WHERE `mem_net`.`calc_month` = 48 AND `mem_net`.`rank` > 6 ) AND
  EXISTS (SELECT 1 FROM `mem_net` WHERE `mem_net`.`calc_month` = 47 AND `mem_net`.`rank` > 6 ) AND
  EXISTS (SELECT 1 FROM `mem_net` WHERE `mem_net`.`calc_month` = 46 AND `mem_net`.`rank` > 6 )


Но вот как проверить это за весь год (т.е с 53 до 45)? OR использовать нельзя в момент ахинею выдавать начнет.
Наведите на мысль плиз....
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487064
можно ведь проверить, что за заданный промежуток времени НЕ встречается рангов <= 6 ;)
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487068
ну либо считать кол-во месяцев и проверять, что их ровно 8.
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487097
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё такое великолепно делается курсором.
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487104
hedgehogelez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

Чё за курсор?
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487110
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487120
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Торможу с утра, не сообразил проДобрый Э - Эхможно ведь проверить, что за заданный промежуток времени НЕ встречается рангов <= 6 ;)
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487180
hedgehogelez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cygapb-007,
Переменные рулят! :-)
Почемуто выдает:
Код: plsql
1.
2.
3.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select distinct c.*
from mem_net m
join mem_net c on c.rank>6 and c.calc_month' [color=red]at line 3[/color]
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487205
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или перед select есть неотображаемый "левый" символ, или показывай ВЕСЬ запрос и рассказывай (или показывай код), как ты его выполняешь.
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487208
hedgehogelez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
set @q=45;
select distinct c.*
from mem_net m
join mem_net c on c.rank>6 and c.calc_month between m.calc_month and m.calc_month+@q-1
where m.rank>6 and @q<=(
  select count(*) 
  from mem_net c
  where c.rank>6 and c.calc_month between m.calc_month and m.calc_month+@q-1
  )
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487217
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina и рассказывай (или показывай код), как ты его выполняешь.
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487233
hedgehogelez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Так вроде ж код выложил, только там set @q=3;
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487239
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КАК ТЫ ЭТОТ КОД ИСПОЛНЯЕШЬ НА СЕРВЕРЕ???
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487240
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХЗ... Может, сработает более оптимальный(/правильный) вариант?:)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
;
select distinct c.*
from mem_net m
join mem_net c on c.calc_month between m.calc_month and m.calc_month+@q-1
cross join (select @q:=4 q)q
where not exists(
  select 1
  from mem_net e
  where e.calc_month between m.calc_month and m.calc_month+@q-1 and e.rank <=6
  );
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487243
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, он неправильный))) Сорь...
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487245
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007 , да ща окажется, что он через mysql_query его пытается серверу скормить, или какая анальногичная хрень...
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487254
hedgehogelez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

SQL Manager 2011 Перезапустил начал выполнять. Такая косячная хрень... Второй месяц юзаю обплевался.
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487262
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hedgehogelez,

зачем второй месяц юзать косячную хрень? ничего лучше не нашлось?
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487310
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hedgehogelezMasterZiv,

Чё за курсор?

http://dev.mysql.com/doc/refman/5.1/en/cursors.html
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487315
hedgehogelez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Мда... хрень точно косячная... Аналогично результат не ICE...
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487316
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hedgehogelezCygapb-007,
Переменные рулят! :-)



С переменными я бы как раз не связывался.
Потому что не понятно, как они работают -- порядок вычисления предложений в запросе не определён...
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487365
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivhedgehogelezCygapb-007,
Переменные рулят! :-)



С переменными я бы как раз не связывался.
Потому что не понятно, как они работают -- порядок вычисления предложений в запросе не определён...Не в данном случае:)

А вообще да, в 5.5 и в 5.6 они по-разному обрабатываются :)
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487432
hedgehogelez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда.... печально как-то это всё...
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487460
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007Не в данном случае:)
А вообще да, в 5.5 и в 5.6 они по-разному обрабатываются :)

не дашь ли ты ссылку на документацию, где описывается, как работают переменные в запросах?
...
Рейтинг: 0 / 0
Помогите с логикой запроса.
    #38487474
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivCygapb-007Не в данном случае:)
А вообще да, в 5.5 и в 5.6 они по-разному обрабатываются :)

не дашь ли ты ссылку на документацию, где описывается, как работают переменные в запросах?Ссылку не дам, но лично сталкивался с запросом на переменных, правильно работающем в 5.5 и выдающем бред в 5.6. Связано было вроде с оптимизацией подзапросов в 5.6.

Деталей уже не помню, но итог в памяти осел... в смысле отложился
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с логикой запроса.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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