возможна ли такая выборка

zul

Новичок
возможна ли такая выборка

Есть таблица - в ней регистрируются посетители, а в другой таблице регистрируются вопросы, заданные ими (условно говоря, суть не в этом)
1)
ID, NAME, CITY, DATE
2)
ID, Q1, Q2, Q3

Q1-3 - принимает значения 1 или 0 - задан вопрос или нет

Нужно выбирая город и интервалы дат получить COUNT(*) где заданный вопрос равен 1-це.

Возможно ли такое - и если да, то как?
 

Falc

Новичок
zul
Гораздо универсальнее в даном случае сделать отношение многие ко многим между пользователями и вопросами. Тогда подобные вопросы отпадут сами сабой.

Если переделывать базу уже нет возможности или желания то можно пыхом генерить условие на заданное поле:
...
WHERE $Q = 1 ...

Где $Q содержит название поля с нужным вопросом.
 

zul

Новичок
Ну это понятно, в цикле прогоняю например $i

SELECT sum(`questions.q$i` = 1) as cnt, result.CALL_DATA as dc from questions, result LEFT JOIN result ON result.ID_C = questions.ID_C AND dc between '$from_date' and '$to_date'

Но это не хочет работать...

-~{}~ 02.03.04 20:33:

Понял, где собака порылась =)
вот вывод:

SELECT count(questions.q11) as cnt from questions LEFT JOIN result ON result.ID_C = questions.ID_C WHERE result.CALL_DATA between '2004-3-1 00:00:00 00:00:00' and '2004-3-2 23:59:59 23:59:59' and city='Москва' and questions.q11='1'
 
Сверху