SQL Server - Group by Values from Different Columns -


i have set of data this:

   id   person1   value1   person2   value2   person3   value3   period   ---------------------------------------------------------------------    1              1         d        1                          june    2       b        2                                             july    3       c        3                                             june    4       b        1         c        3                2       august    5       c        2                2                          june 

column id row identifier , doesn't mean anything. want group them person , period , followed sum of each person's value. expected result like:

person   period   value -----------------------         june      3         august    2    b      july      2    b      august    1    c      june      5    c      august    3    d      june      1 

is doable? appreciated!

based on question edit , comment:

select person, period, sum(val) total (   select person1 person, period, value1 val   tablename   union   select person2 person, period, value2 val   tablename   union   select person3 person, period, value3 val   tablename ) sub group person, period 

original answer

reduce problem steps solve.

first normalize

select person1 person, value1 val tablename union select person2 person, value2 val tablename union select person3 person, value3 val tablename 

then add em group normal

select person, sum(val) total (   select person1 person, value1 val   tablename   union   select person2 person, value2 val   tablename   union   select person3 person, value3 val   tablename ) sub group person 

Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -