У меня есть запрос, который в настоящее время рассчитывает сумму чистого номинала, валового заработка и валового вычета ежемесячно, но теперь я хочу запрос, который рассчитывает те же свойства, но на основе разных типов сотрудников, мое веб-приложение в настоящее времяиспользуя нижеупомянутый тип работника
EMP_TYPE EMP_TYPE_NAME
01 Regular Employee
04 Deputated In Employee
06 Contractual Employee
03 Outsource Employees
05 Regular Employee-MPSIDC
Теперь у меня есть еще одна таблица i, e EMPLOYEE_SALARY_SUMMARY
, которая содержит все необходимые данные относительно зарплаты i, e NET_PAY
, GROSS_EARNING
, GROSS_DEDUCTION
.
До сих пор у меня есть данные на ежемесячной основе, например,
December, 2018,
total Net_Pay is 2 cr,
total gross Earn 2.5 cr,
total gross_deduct is 50lacs
Но теперь мне также нужны данные от имени Типа сотрудника, пример: декабрь 2018
Regular Employee Net_pay =50 lacs, Gross Earn= 75 lacs, gross Deduct=25 Lac
Deputed-In Employee Net_pay =50 lacs, Gross Earn= 75 lacs, gross Deduct=25 Lac
Contractual Employee Net_pay =50 lacs, Gross Earn= 75 lacs, gross Deduct=25 Lac
Я написал это, но я не получил ожидаемый результат, сейчас я использую дело только для штатного сотрудника, т. Е. Emp_TYPE= 1
select
count(distinct ess.EMPLOYEE_ID)emp_count,
SUM(case when et.EMP_TYPE_ID = 1 then ess.NET_SALARY else 0 end )net_sal,
SUM(case when et.EMP_TYPE_ID = 1 then ess.GROSS_EARNING else 0 end )gross_earn,
SUM(case when et.EMP_TYPE_ID = 1 then ess.GROSS_DEDUCTION else 0 end )gross_deduct
from
employee_salary_summary ess
JOIN employee e
on e.EMP_ID=ess.EMPLOYEE_ID
JOIN EMPLOYEE_TYPE et
ON et.EMP_TYPE_ID=e.EMP_TYPE_ID
group by ess.NET_SALARY, ess.GROSS_EARNING, ess.GROSS_DEDUCTION;
Также предложите мне эффективныйспособ написать тот же запрос, так что он никогда не завершится неудачей в любом случае.
Текущий вывод:
emp_count net_pay gross_earn gross_deduct
1 26862 30643 3781
1 37229 42361 5132
1 66304 75222 8918
1 19124 22300 3176
2 93144 105840 12696
4 93176 106444 13268
1 0 0 0
1 38434 43722 5288
1 0 0 0
2 81996 93240 11244
Он также выбирает другие типы сотрудников, как вы можете видеть в выводе, Emp_Typeне ограничено 1, квery также выбирает другие типы employee_typ, такие как 2 и 4.
Ожидаемый результат должен быть
emp_count Employee type net_pay gross_earn gross_deduct
51 Regular Emp 15,00000 17,000000 2,00000
26 Deputed-In 8,00000 1,00000 7,00000
29 contractual emp 6,00000 2,00000 4,00000