sql server - Grouping in analytical query -


i have table return records :

name   total_case_count   user_case_count   p_count  rej_count  ppp_count    other_count  abc        20                  10            03 abc        20                  10                      05  abc        20                  10                                 02  xyz        20                  10            05 xyz        20                  10                      02 xyz        20                  10                                 01 xyz        20                  10                                             02 

but need result :

 name   total_case_count   user_case_count   p_count  rej_count  ppp_count    other_count   abc        20                  10            03           05       02  xyz        20                  10            05           02       01        02 

means sum of user count & other count come in same row. i'm using query:

    select distinct result.name, result.user_account_id,total_case_count,user_case_count,pending_case_count,             rejected_case_count,pending_for_payment_case_count,active_case_count ( select row_number() on (order c.case_id asc) row_index,    ua.user_account_id,    ua.first_name ||' '||ua.last_name name,    count(*) on () total_case_count,    count(*) on (partition ua.user_account_id) user_case_count,     case              when c.case_status_id = 2 count(*) on (partition c.case_status_id,ua.user_account_id) end pending_case_count,    case              when c.case_status_id = 4 count(*) on (partition c.case_status_id,ua.user_account_id) end rejected_case_count,    case              when c.case_status_id = 6 count(*) on (partition c.case_status_id,ua.user_account_id) end pending_for_payment_case_count,    case              when c.case_status_id in (1,3,5,7,8,9)  count(*) on (partition c.case_status_id,ua.user_account_id) end active_case_count case c  inner join case_status cs on cs.case_status_id = c.case_status_id inner join sso.user_accounts ua on ua.user_account_id = c.created_by  inner join sso.user_in_types uit on uit.user_account_id = ua.user_account_id  inner join sso.user_types  ut on ut.user_type_id = uit.user_type_id  ut.application_id = 12 , ut.user_type_id = 2170 ) result  order name 

any suggestion appreciated..

you can use aggregation in outer select:

select result.name, result.user_account_id,max(total_case_count),max(user_case_count),max(pending_case_count),             max(rejected_case_count),max(pending_for_payment_case_count),max(active_case_count) ( select row_number() on (order c.case_id asc) row_index,    ua.user_account_id,    ua.first_name ||' '||ua.last_name name,    count(*) on () total_case_count,    count(*) on (partition ua.user_account_id) user_case_count,     case              when c.case_status_id = 2 count(*) on (partition c.case_status_id,ua.user_account_id) end pending_case_count,    case              when c.case_status_id = 4 count(*) on (partition c.case_status_id,ua.user_account_id) end rejected_case_count,    case              when c.case_status_id = 6 count(*) on (partition c.case_status_id,ua.user_account_id) end pending_for_payment_case_count,    case              when c.case_status_id in (1,3,5,7,8,9)  count(*) on (partition c.case_status_id,ua.user_account_id) end active_case_count case c  inner join case_status cs on cs.case_status_id = c.case_status_id inner join sso.user_accounts ua on ua.user_account_id = c.created_by  inner join sso.user_in_types uit on uit.user_account_id = ua.user_account_id  inner join sso.user_types  ut on ut.user_type_id = uit.user_type_id  ut.application_id = 12 , ut.user_type_id = 2170 ) result  group result.name, result.user_account_id order name 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -