haviras.livejournal.comВеликие гуру, помогите начинающему
Есть таблица
id, card, surname, check, date, month
Почему date и month отдельные колонки, дублирующие частично друг друга, не спрашивайте - так исторически сложилось. Хотя это и не совсем грамотно
Стоит задача написать выборку таким образом, что бы все уникальные surname за month считались и выводились в общую таблицу.
Допустим есть `surname` = 'вася'
Он был `date` = '2009-07-01' && `month`='2009-07', `date` = '2009-07-02' && `month`='2009-07' и `date` = '2009-07-08' && `month`='2009-07'
И надо в итоговой выборке написать
Вася: был 3 раза
То есть как бы
Если вася -тру.то счетчик +1, ничего сложного.
Но в таблице то еще 500 других человек, и в итоговой выборке всех сразу отобразить надо.
На этом то я и повис.
Поможите люди добрые
БД: mysql
По идее должно работать:
select `month`, `surname`, count(*) from discount where `month`='2009-02' group by `surname`
UPD:
Предыдущую проблему решил. Надо было убрать запятую просто перед каунт.
Но вот вырисовалась новая задача, собственно такая же как предыдущая, только вот
SELECT `month` , `color` , `count` count( * )
FROM tickets
WHERE `month` = '2009-02'
GROUP BY `color`
LIMIT 0 , 30
если так, то оно считает, сколько раз встречается тот или иной билет за месяц
и вроде бы считает, но только первую итерацию.
Т.е если красный билет был дважды и первый раз его продали 100 штук, а во второй 200, то в итоговой выборке покажет 100. Как сделать 300?
То есть я хочу написать, что бы sql запрос считал сколько продано билетов всего соотв цвета (color), беря данные из колонки count (да, знаю, что нельзя было так колонку называть, но увы, тяжелая наследственность местных погромистов) и складывая их и выводя в итоговую выборку вида:
зеленый 100
красный 20