Запрос на группировку по 2 полям и объединением таблиц

Qwest-fx

Профессор
Регистрация
3 Апр 2007
Сообщения
134
Реакции
41
Есть примерно такой запрос

PHP:
select sum(tb_nach.vidsum) as Сумма, count(tb_nach.mes) as 'кол.во нач.', spr_work.fio,tb_nach.god from tb_nach
inner join tb_approval on (tb_nach.tab = tb_approval.tab )
inner join spr_work on (tb_approval.idfio = spr_work.id )
group by tb_nach.tab, tb_nach.god
having tb_nach.god = year(CURRENT_DATE) or tb_nach.god = year(CURRENT_DATE)-1

Но он не совсем верный, т.к. хочется применить группировку по диапозону, т.е. чтобы группировка прошла по 2 годам. например 2011-2012 чтобы применить агрегатную функцию sum

Вывод запроса.
20120318-630-46kb.jpg

если конечно такое возможно
 
возможно не до конца понял суть вопроса, но по моему так:
PHP:
select sum(tb_nach.vidsum) as Сумма, count(tb_nach.mes) as 'кол.во нач.', spr_work.fio,tb_nach.god from tb_nach
inner join tb_approval on (tb_nach.tab = tb_approval.tab )
inner join spr_work on (tb_approval.idfio = spr_work.id )

where tb_nach.god in (2011, 2012)
group by tb_nach.tab
 
возможно не до конца понял суть вопроса, но по моему так: PHP: select sum(tb_nach.vidsum) as Сумма, count(tb_nach.mes) as 'кол.во нач.', spr_work.fio,tb_nach.god from tb_nachinner join tb_approval on (tb_nach.tab = tb_approval.tab )inner join spr_work on (tb_approval.idfio = spr_work.id )where tb_nach.god in (2011, 2012)group by tb_nach.tab
Даст ошибку. Т.к. поля spr_work.fio, tb_nach.god не участвуют в группировке, в них по 2 значения и к ним не применили агрегат.
Что бы не получить ошибку надо хотя бы
PHP:
select sum(tb_nach.vidsum) as Сумма, count(tb_nach.mes) as 'кол.во нач.', max(spr_work.fio),max(tb_nach.god) from tb_nach
Но это неправильно из-за сути полученных данных!
 
Даст ошибку. Т.к. поля spr_work.fio, tb_nach.god не участвуют в группировке, в них по 2 значения и к ним не применили агрегат.
я в первые 3 строчки не вникал. сейчас глянул - у ТС в select есть spr_work.fio, а в группировке он не участвует - странно.

если у него так работает, то тогда мой вариант остается прежним, только из первой строки надо убрать tb_nach.god
 
я в первые 3 строчки не вникал. сейчас глянул - у ТС в select есть spr_work.fio, а в группировке он не участвует - странно. если у него так работает, то тогда мой вариант остается прежним, только из первой строки надо убрать tb_nach.god
Да, там видимо tb_nach.tab - это табельный номер, и это по нему идет группировка. Тогда осталось только убрать tb_nach.god ))
 
Назад
Сверху