Re[3]: помогите составить запрос в базу
От: Olaf Россия  
Дата: 01.06.13 16:04
Оценка:
Здравствуйте, zverjuga, Вы писали:

Z>к сожалению, этот скрипт не полностью решает задачу


Z>1. из-за группировки по user_id юзер показывает только один раз на одну дату. то есть, для остальных дат его не показывает

Z>2. счетчик count тоже считает не правильно. он считает за все время, а надо, чтобы он считал на конекретную дату

Z>собственно, именно с этими тредносями я и столкнулся


Тогда либо я не правильно понял задачу, либо существует проблема с данными. Предположим у нас в таблицах следующие записи:
insert into table2 select 1, 'Petrov', 'Petrov@mail.ru'
insert into table2 select 2, 'Invanov', 'Ivanov@mail.ru'

insert into table1(user_id, time, value)
select 1, '2013-01-01', 'a' union all select 1, '2013-01-01', 'b' union all select 1, '2013-01-01', 'c'
union all
select 2, '2013-01-01', 'd' union all select 2, '2013-01-01', 'e'
union all
select 1, '2013-01-02', 'f'
union all
select 2, '2013-01-03', 'g' union all select 2, '2013-01-03', 'h' union all select 2, '2013-01-03', 'i'

Запрос представленный выше должен вернуть — за каждую дату и для каждого пользователя, кол-во не NULL значений поля value. Результат запроса будет выглядеть так:

time | user_id | name | email | cnt
2013-01-03 | 2 | Invanov | Ivanov@mail.ru | 3
2013-01-02 | 1 | Petrov | Petrov@mail.ru | 1
2013-01-01 | 1 | Petrov | Petrov@mail.ru | 3
2013-01-01 | 2 | Invanov | Ivanov@mail.ru | 2

Поправьте меня, если я где-то ошибся. Может быть, у вас есть свой пример данных, на котором видно, что на входе и что получаем в результате выполнения запроса?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.