Мне нужно построить таблицу, как показано ниже, динамически с помощью Pivot или Unpivot - PullRequest
0 голосов
/ 31 октября 2018

EmpSalary таблица:

EmpCode BASIC   HRA  CONV
--------------------------
   1    10000   500  300
   2    10000   500  300

Желаемый вывод:

   SalaryCode   SalaryDetails
    EmpCode           1
    BASIC           10000
    HRA               500
    CONV              300
   Total            10800

    EmpCode           2
    BASIC           10000
    HRA               500
    CONV              300
   Total            10800

1 Ответ

0 голосов
/ 31 октября 2018

На самом деле нам нужно то, что DBMS вы используете.

Следующий код, включающий предложение unpivot, работает для Sql-Server или Oracle:

select SalaryCode, SalaryDetails
  from   
   (select EmpCode, BASIC,HRA,CONV,
           (BASIC+HRA+CONV) sub_Total  
      from EmpSalary 
      ) p  
unpivot  
   (SalaryDetails for SalaryCode in
      (EmpCode,BASIC,HRA,CONV,sub_Total)  
) unpvt;

Rextester Demo

...