Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> еще SQL-запрос 
V
    Опции темы
tatbesidovska
Дата 12.4.2011, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



делаю запрос:
Код

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 








PM MAIL   Вверх
tatbesidovska
Дата 13.4.2011, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



все получилось

Код

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

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0362 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.