Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) 1 2 [3]  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Создание вложенного запроса
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 40




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"


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 13 дней
Карма: 40




Цитата (masterlelik @ 6.07.2016 - 15:50)
Считаем, что непрерывный и броней нет.

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

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


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 13 дней
Карма: 40




Цитата (Guest @ 6.07.2016 - 16:31)
называть запрос нерабочим, мягко говоря, охренительное преувеличение.

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

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


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 40




Цитата (S.Chushkin @ 6.07.2016 - 21:01)
Даже если броней нет, то всё равно поиск диапазонов в списке делать лучше в ПХП.

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


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 13 дней
Карма: 40




> Зачем?
Чтобы сделать правильно.
> Почему?
Потому что это правильно для этой задачи.
smile.gif


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









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

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

На это могу только посоветовать запустить подзапрос отдельно и посмотреть на промежуточные результаты.... Подсказка: во временной таблице уникальны не только строки, но и значения в каждом из столбцов
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 13 дней
Карма: 40




Н-да. Печально. sad.gif


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
masterlelik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 96
Пользователь №: 1297
На форуме: 9 лет, 10 месяцев
Карма:




Цитата (chee @ 6.07.2016 - 14:27)
masterlelik, DATEDIFF решает задачу полностью, если я правильно понял условия

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

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

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


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 21 день
Карма: 167




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

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

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


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 40




masterlelik, что за условие по стоимости, почему его не сделать в where части?


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 13 дней
Карма: 40




Цитата (Valick @ 8.07.2016 - 09:11)
Цитата
надо смотреть с большим массивом данных

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

100%!

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


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 13 дней
Карма: 40




Цитата (masterlelik @ 6.07.2016 - 15:50)
Считаем, что ... броней нет.

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

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


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
masterlelik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 96
Пользователь №: 1297
На форуме: 9 лет, 10 месяцев
Карма:




Цитата (S.Chushkin @ 8.07.2016 - 06:32)
Цитата (masterlelik @ 6.07.2016 - 15:50)
Считаем, что ... броней нет.

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

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

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

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


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
masterlelik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 96
Пользователь №: 1297
На форуме: 9 лет, 10 месяцев
Карма:




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


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 40




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


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) 1 2 [3]  Ответ в темуСоздание новой темыСоздание опроса