[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создание вложенного запроса
Страницы: 1, 2, 3
chee
masterlelik, DATEDIFF решает задачу полностью, если я правильно понял условия

SELECT id, DATEDIFF(date_to, date_from) * sum, sum, date_from, date_to WHERE тут условия по временному отрезку + можно тот же самый DATEDIFF для условия на длину отрезка


Выход
Цитата

"1","3500","500","2016-07-06","2016-07-13"
"2","700","100","2016-07-07","2016-07-14"
"3","6300","300","2016-07-06","2016-07-27"
"4","500","500","2016-07-15","2016-07-16"


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
S.Chushkin
Цитата (masterlelik @ 6.07.2016 - 15:50)
Считаем, что непрерывный и броней нет.

Даже если броней нет, то всё равно поиск диапазонов в списке делать лучше в ПХП.

А вот если выборка сложная, типа того, что описал Guest, тогда возможно лучше делать в SQL. Тут уже надо анализировать конкретику.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Цитата (Guest @ 6.07.2016 - 16:31)
называть запрос нерабочим, мягко говоря, охренительное преувеличение.

Вы ошибаетесь. И похоже невнимательно читали доку. sad.gif

Сто раз говорил уже, и не только я - т.е. N*100 раз, что значения полей, не включённых в GROUP BY будут от балды (т.е. не гарантируются). Соответственно, использование таких запросов, это ошибка в ПО.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
chee
Цитата (S.Chushkin @ 6.07.2016 - 21:01)
Даже если броней нет, то всё равно поиск диапазонов в списке делать лучше в ПХП.

Зачем? Почему?

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
S.Chushkin
> Зачем?
Чтобы сделать правильно.
> Почему?
Потому что это правильно для этой задачи.
smile.gif


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Guest
Цитата (S.Chushkin @ 6.07.2016 - 21:08)
Сто раз говорил уже, и не только я - т.е. N*100 раз, что значения полей, не включённых в GROUP BY будут от балды (т.е. не гарантируются). Соответственно, использование таких запросов, это ошибка в ПО.

Тю... а я то уж думал...

На это могу только посоветовать запустить подзапрос отдельно и посмотреть на промежуточные результаты.... Подсказка: во временной таблице уникальны не только строки, но и значения в каждом из столбцов
S.Chushkin
Н-да. Печально. sad.gif

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
masterlelik
Цитата (chee @ 6.07.2016 - 14:27)
masterlelik, DATEDIFF решает задачу полностью, если я правильно понял условия

В том случае, если условие по стоимости делать средствами пхп, тогда да.

Цитата
значения полей, не включённых в GROUP BY будут от балды (т.е. не гарантируются).

согласен, в общем случае так и происходит, просто в частно случае могут выбраться нужные данные, а могут и не те что надо. Как в текущем случае надо смотреть с большим массивом данных.

_____________
Valick
Цитата
могут выбраться нужные данные, а могут и не те что надо

Цитата
надо смотреть с большим массивом данных

никуда не нужно смотреть, просто на эти данные не должна быть завязана логика


_____________
Стимулятор ~yoomoney - 41001303250491
chee
masterlelik, что за условие по стоимости, почему его не сделать в where части?


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
S.Chushkin
Цитата (Valick @ 8.07.2016 - 09:11)
Цитата
надо смотреть с большим массивом данных

никуда не нужно смотреть, просто на эти данные не должна быть завязана логика

100%!

Ещё раз (N*100-й + 1): данные будут от балды.
Т.е. в частном случае 1000 раз оно выдаст правильный результат, а на 1001, например, неправильный. От чего зависит правильно/неправильно и когда это будет, знают только разрабы движка.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Цитата (masterlelik @ 6.07.2016 - 15:50)
Считаем, что ... броней нет.

А где Вы дурите нас?
Цитата:
"Потому что могут быть номера забронированы, и, следовательно, некоторые дни могут быть недоступны." (phpclub.ru)

Так всё же, у Вас номера бронируются или нет?

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
masterlelik
Цитата (S.Chushkin @ 8.07.2016 - 06:32)
Цитата (masterlelik @ 6.07.2016 - 15:50)
Считаем, что ... броней нет.

А где Вы дурите нас?
Цитата:
"Потому что могут быть номера забронированы, и, следовательно, некоторые дни могут быть недоступны." (phpclub.ru)

Так всё же, у Вас номера бронируются или нет?

Прошу прощения за долгий ответ - не было электричества.

Брони не учитываются, т.е. кто то сказал, что вдруг есть брони и я чуть отвлекся в сторону.
Еще раз скажу, что про брони думать не нужно их нет и не будет.

_____________
masterlelik
Проверил вариант от Guest - группировка по dateFrom не работает. А точнее она то работает, но если есть много отелей и у них совпадают даты, то часть результатов пропадает

_____________
chee
masterlelik, я вот одно не понимаю, чем мой вариант-то тебя не устраивает? Изич же.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.