Проблема с выборкой периодов при переходе с одного месяца на другой

Эдди

Новичок
Хватит исходить желчью.
Сначала ты хотел удостовериться, что я дату храню как день-месяц-год.
Потом сказал, что должно быть все в порядке.
Потом, что алиасам нельзя давать такие же имена, как данным.
Потом на личности перешел. Но мне это до лампы.
Решение нужно. Или направление, где искать.

На что ты ответил?

В прошлый раз, когда ты отдыхал (наверное), мне люди очень хорошо ответили, и я решил проблему.
Ты можешь решить лучше них. Но не хочешь. Задача у тебя такая.
 

Эдди

Новичок
Автор оригинала: x-yuri
Эдди так у тебя вопросы остались?
Остались. Или я совсем тупой, посыплю голову пеплом, а потом пойду двор подметать (что полездно для здоровья),
или я не так объяснил (тогда см. первый или...)

Ключевая фраза *****а - "Как ты выбираешь ПЕРИОД когда выборка идет по ОДНОМУ ПОЛЮ".

==============
Есть таблица туры tours
Есть таблица периоды tour_periodes, связанная с первой по tour_id

Мне надо выбрать ВСЕ строки (назовем их так, а не периодами) из таблицы tour_periodes, связанные с определенным tour_id
WHERE tours.tour_id="X" выведет их? Выведет.

Затем мне надо ограничить вывод этих строк, чтобы не выводились те, где конец периода миньше чем сумма (дата его начала + продолжительность тура).
Я не могу добавить второе выражение в WHERE, чтобы отсечь ненужные строки? Могу.
UNIX_TIMESTAMP(tour_periode_to)>=(UNIX_TIMESTAMP(tour_periode_from)+(6*86400))

Все работает, кроме переходов периодов.

Какая связь между этим и "Как ты выбираешь ПЕРИОД когда выборка идет по ОДНОМУ ПОЛЮ"?
 

Фанат

oncle terrible
Команда форума
что-то парня заклинило.
тут не двор подметать, а в тихое спокойное место с белыми кроватями и вежливым, но строгим персоналом...

-~{}~ 18.02.09 11:11:

хотя да. чего я взял, что выборка идет по одному полю.
Другое дело, что это не имеет никакого значения.
 

Активист

Активист
Команда форума
Эдди
Не ругайся с модераторами, а задумывайся, читай документацию и примеры, а не беги на форум.

У тебя много ошибок в твоем запросе и он ужасен.

Код:
SELECT
		tour_periode_id,
		DATE_FORMAT(tour_periode_from, "%d-%m-%Y") as tour_periode_from_formated,
		DATE_FORMAT(tour_periode_to, "%d-%m-%Y") as tour_periode_to_formated,
		tour_periodes.profit,
		tour_periodes.commis,
		tour_periodes.sconto

FROM	tours,
		tour_periodes

WHERE
		tours.tour_id=tour_periodes.tour_id &&
		tours.tour_id="512" &&
		tour_periode_to > (tour_periode_from + INTERVAL 6 DAY)
		
		
ORDER BY
		tour_periodes.tour_periode_from ASC
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
Чтоб от корки до корки!
 

Эдди

Новичок
Автор оригинала: Активист
Эдди
Не ругайся с модераторами, а задумывайся, читай документацию и примеры, а не беги на форум.
БОЛЬШОЕ СПАСИБО!!!

Не ругаюсь я ни с кем. И пришел сюда, перерыв все источники, которые имел. Ну не было там про названия алиасов (которые здесь ни при чем) и про INTERVAL...

Работает НОРМАЛ!
 

Фанат

oncle terrible
Команда форума
Активист
ты заметил, сколько пользы нанес человеку одним махом? =)
 

Активист

Активист
Команда форума
> названия алиасов
Алиасы здесь совсем причем, обратите внимание, что я их поменял.
Вы меняете формат данных, записываете в алис (аналогичного названия как поле), и далее выборку делаете по этому алиасу, а ведь , формат не правильный, а это значит, что выборка уже будет ошибочка.

А про Interval есть в ссылке, которую вы вероятно уже добавили в избранное.
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
;)
 

Эдди

Новичок
Автор оригинала: Активист
> названия алиасов
Алиасы здесь совсем причем, обратите внимание, что я их поменял.
Вы меняете формат данных, записываете в алис (аналогичного названия как поле), и далее выборку делаете по этому алиасу, а ведь , формат не правильный, а это значит, что выборка уже будет ошибочка.

А про Interval есть в ссылке, которую вы вероятно уже добавили в избранное.
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
;)
Я пока алиасы не изменил. Их придется менять по всему коду. Но так тоже работает.
А разве алиасы уже используются в WHERE? Мне казалось, что они появляются только в результате запроса.

За ссылку спасибо.
 

Фанат

oncle terrible
Команда форума
Да, похоже, что я лоханулся.

-~{}~ 18.02.09 14:23:

тогда непонятно, почему на работал первоначальный запрос
 

Эдди

Новичок
Автор оригинала: *****
тогда непонятно, почему на работал первоначальный запрос
Обратите внимание, что он не работал только при переходе периодов.
В остальном было все ОК.
Что там, секунд меньше в последнем дне месяца :)
 

x-yuri

Новичок
Эдди скажи конкретный интервал, который под твой изначальный запрос не подходит. Потому что складывается впечатление, что проблема высосана из пальца, а точнее ее нету
 

Эдди

Новичок
Автор оригинала: x-yuri
Эдди скажи конкретный интервал, который под твой изначальный запрос не подходит. Потому что складывается впечатление, что проблема высосана из пальца, а точнее ее нету
Так у меня сейчас все ОК. С новым условием в запросе проблемы нет.
Хотя хотелось бы понять, что было с прежним.

Не выводился период 28.02-04.03.
Вечером введу дополнительные периоды с переходами с марта на апрель и с апреля на май.
Там будет видно, из-за февраля это или что-то другое.

Отпишусь.
 
Сверху