Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложный запрос 
:(
    Опции темы
Reptor
Дата 16.3.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Усть такая таблица

date unit user_id

2006-03-14 30 3
2006-03-15 10 3


Мне нужно вывести этого юзера еслт только у него за дату 2006-03-15 unitov меньше на 5% чем за дату 2006-03-14. Тоесть в этом примере надо вывести. Ну и саму разницу и также к-тво unitov за 1-ую и 2-ую дату.
Добавлено @ 20:01
Простите что то таблица слилась

date | unit | user_id

2006-03-14 | 30 | 3
2006-03-15 | 10 | 3
PM MAIL ICQ   Вверх
HalkaR
Дата 16.3.2006, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



Код

SELECT t1.user_id FROM table AS t1 
INNER JOIN table AS t2 ON t1.user_id=t2.user_id AND DATEDIFF(t1.date,t2.date)=1D AND t1.unit<t2.unit*0.95
что такое, проверить негде.
PM MAIL   Вверх
Reptor
Дата 17.3.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



А зачем тут Left Join c той же самой таблицей?
PM MAIL ICQ   Вверх
Darhazer
Дата 17.3.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: 7
Всего: 29



JOIN сдесь чтоб было возможно сравнить date в двух рядов из таблице... иначе можеш сравнение делать только между разным полям, а тебе нужно между одинаковим но в разных рядов

Это сообщение отредактировал(а) Darhazer - 17.3.2006, 18:30


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Reptor
Дата 17.3.2006, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



а это что означает
Код

DATEDIFF(t1.date,t2.date)=1D 
особенно вотето 1D? И где тут видно что выбираются те даты которые в примере?. Мне надо выбирать имено по конкретным 2-ум датам
PM MAIL ICQ   Вверх
HalkaR
Дата 17.3.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



Код

DATEDIFF(day, t1.date,t2.date)=1

вот так правильно
Добавлено @ 19:25
Это работает в MSSQL точно, а в MySQL не знаю, вроде тоже есть.
PM MAIL   Вверх
Reptor
Дата 20.3.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Ну так где тут установить именно на конкретные 2 даты?
PM MAIL ICQ   Вверх
HalkaR
Дата 21.3.2006, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



t1.date и t2.dateб где t1 и t2 алиасы к твоей таблице
PM MAIL   Вверх
Reptor
Дата 21.3.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Да кстати может я что то путаю но функция DATEDIFF гласит следущее
Цитата

DATEDIFF() returns the number of days between the start date expr and the end date expr2. expr and expr2 are date or date-and-time expressions

PM MAIL ICQ   Вверх
HalkaR
Дата 21.3.2006, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



Цитата(Reptor @ 21.3.2006, 17:59)
Да кстати может я что то путаю но функция DATEDIFF гласит следущее
Цитата

DATEDIFF() returns the number of days between the start date expr and the end date expr2. expr and expr2 are date or date-and-time expressions

И в чем проблема?
PM MAIL   Вверх
Reptor
Дата 21.3.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Зачем она? ведь мне ненадо проверять разницу между датами я её знаю у меня 2 конкретные даты есть.
Вон те даже к примеру что в примере написал.
PM MAIL ICQ   Вверх
HalkaR
Дата 21.3.2006, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



Reptor, ну а как ты проверишь равна ли разница между двумя датами 1 дню?
PM MAIL   Вверх
Reptor
Дата 22.3.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Цитата

Reptor, ну а как ты проверишь равна ли разница между двумя датами 1 дню?


Ну так мне известно что разница 1 день. А что нельзя както в условии поставить что первая дата равна стокото а вторая стокото?
PM MAIL ICQ   Вверх
HalkaR
Дата 22.3.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 2
Всего: 42



Reptor, так у тебя только две даты или надо найти все даты удовлетворяющие условию?
PM MAIL   Вверх
Reptor
Дата 22.3.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



HalkaR, да только 2 даты удолетворяющие условию. Но в самом деле их много просто я знаю конкретно по каким надо выбирать и все ну как в том примере что я написал в начале
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.