sql server - How to formulate a TSQL CTE expression for total counts? -


i have table raw data want return distinct people_id counts from. how can in cte if counts have different groupings? here have far:

;with cte      (select         program_modifier_id, program_modifier, people_id, group_profile_id,         current_status, license_number, is_managing_office,        program_info, program_name, program_code, group_profile_type_id          #enrollments en (nolock) )  select 'tn - level 4',       case when (program_modifier_id = 'e1aa7a36-0500-4bae-a0aa-d9e0bc91a6f3' )         count(distinct people_id) end 'total ct'   cte   group program_modifier_id     union   select 'tn - level 3 ce - rtc',       case when (program_modifier_id = '213d080f-e340-44b6-ac8c-4233d1193602'                        , license_number '%-rtc-%')         count(distinct people_id) end 'total ct'   cte   group program_modifier_id, license_number  

the output is:

tn - level 3 ce - rtc   49 tn - level 3 ce - rtc   38 tn - level 4    56 tn - level 3 ce - rtc   7 tn - level 3 ce - rtc   24 tn - level 3 ce - rtc   null tn - level 4    null 

but want output like:

tn - level 3 ce - rtc   118 tn - level 4    56 

so problem two-fold. first, of these counts include more 1 condition in clause. example, program_modifier_id vs. program_modifier_id , license_number. second problem using tsql code above, have group both program_modifier_id , license_number in order include license_number in clause. don't want breakdown count on license_number. want total count, regardless of license_number. how can modify tsql query achieve desired counts?

;with cte      (select         program_modifier_id, program_modifier, people_id, group_profile_id,         current_status, license_number, is_managing_office,        program_info, program_name, program_code, group_profile_type_id          #enrollments en (nolock) )   select description,sum([total ct]) [total ct]  (     select 'tn - level 4' description,       case when (program_modifier_id = 'e1aa7a36-0500-4bae-a0aa-d9e0bc91a6f3' )         count(distinct people_id) end 'total ct'   cte   group program_modifier_id  ) group description   union   select description,sum([total ct])  (    select 'tn - level 3 ce - rtc'as description,       case when (program_modifier_id = '213d080f-e340-44b6-ac8c-4233d1193602'                        , license_number '%-rtc-%')         count(distinct people_id) end 'total ct'   cte   group program_modifier_id, license_number   ) group description 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

qt - Errors in generated MOC files for QT5 from cmake -