Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > еще SQL-запрос


Автор: tatbesidovska 12.4.2011, 18:10
делаю запрос:
Код

select kontr_l_pr, post_pr,  
count(case when vpl_main_pr = 'да'  then 1 end) cnt_yes,
count(case when vpl_main_pr = 'нет' then 1 end) cnt_no
from
(
select kontr_l_pr, post_pr, vpl_main_pr from pr  where date_pr between @DateBeginning and @DateEnding 
union all
select kontr_l, post_por, vpl_main_por  from Por where date_por between @DateBeginning and @DateEnding
union all
select kontr_l_prt, post_prt, vpl_main_prt  from prt where date_prt between @DateBeginning and @DateEnding 
union all
select kontr_l_rez, post_rez, vpl_main_rez from rez where date_rez between @DateBeginning and @DateEnding 
union all
select kontr_l_in, post_in, vpl_main_in from in_dok where date_in between @DateBeginning and @DateEnding 
) t
group by kontr_l_pr, post_pr


на выходе получаю:
kontr_l_pr| post_pr    |   cnt_yes| cnt_no|
Иванов     | директор|              2|         5|
Петров     | зам.дир   |              3|          3|

вопрос:

как получить еще один столбец в котором будет сумма по cnt_yes и cnt_no за период с 01.01.2011 по текущую дату, т.е. не учитывать параметры @DateBeginning и @DateEnding 








Автор: tatbesidovska 13.4.2011, 07:41
все получилось

Код

select kontr_l_pr, post_pr, vpl_main_pr, 
count(case when vpl_main_pr = 'да' and (date_pr between @DateBeginning and @DateEnding) then 1 end) cnt_yes,
count(case when vpl_main_pr = 'нет' and (date_pr between @DateBeginning and @DateEnding) then 1 end) cnt_no,
count(case when (vpl_main_pr = 'нет' or vpl_main_pr = 'да') and (date_pr between '01.01.2011' and @DateEnding)  then 1 end) cnt_all
from
(
select kontr_l_pr, post_pr, vpl_main_pr, date_pr from pr
union all
select kontr_l, post_por, vpl_main_por, date_por from Por 
union all
select kontr_l_prt, post_prt, vpl_main_prt, date_prt  from prt 
union all
select kontr_l_rez, post_rez, vpl_main_rez, date_rez from rez 
union all
select kontr_l_in, post_in, vpl_main_in, date_in from in_dok 
) t
group by kontr_l_pr, post_pr, vpl_main_pr

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)