Не удается получить требуемый вывод во время выполнения процедуры
Когда я выполняю процедуру то что я получаю на выходе выглядит следующим образом -
EmployeeCode Additions Deductions AdditionsAmount DeductionsAmount M1010 ALLOWANCE 960.00 0 M1010 BASIC SALARY 1390.00 0 M1010 OT1 171.35 0 M1010 OTHERS-DED 0.00 1800.00
требуемая производительность -
EmployeeCode Additions Deductions AdditionsAmount DeductionsAmount M1010 ALLOWANCE OTHERS-DED 960.00 1800.00 M1010 BASIC SALARY 1390.00 0 M1010 OT1 171.35 0
Любая помощь будет оценена по достоинству.
Что я уже пробовал:
ALTER PROC [dbo].[PROC_EMPLOYEE_PAY_SLIP] @EmplopyeeCode varchar(100), @MonthName varchar(50), @Year Float As Begin SELECT ISNULL(HR_EmployeeMaster.em_EmplopyeeCode,'') As EmplopyeeCode, ISNULL(CASE WHEN fa_ComponentMaster.Cm_ADTag = 'A' THEN fa_ComponentMaster.Cm_Name ELSE '' END,'') As Additions, ISNULL(CASE WHEN fa_ComponentMaster.Cm_ADTag = 'D' THEN fa_ComponentMaster.Cm_Name ELSE '' END,'') As Deductions, ISNULL(CASE WHEN fa_ComponentMaster.Cm_ADTag = 'A' THEN Fa_MonthSalary.Ms_Amount ELSE 0 END,0) As AdditionsAmount, ISNULL(CASE WHEN fa_ComponentMaster.Cm_ADTag = 'D' THEN Fa_MonthSalary.Ms_Amount ELSE 0 END,0) As DeductionsAmount FROM HR_EmployeeMaster LEFT JOIN Fa_MonthSalary ON Fa_MonthSalary.ms_EmpCode = @EmplopyeeCode LEFT JOIN Fa_MonthDetails ON Fa_MonthDetails.mo_id = Fa_MonthSalary.Ms_MonCode LEFT JOIN fa_ComponentMaster ON fa_ComponentMaster.cm_code = Fa_MonthSalary.Ms_CompCode WHERE HR_EmployeeMaster.em_EmplopyeeCode = @EmplopyeeCode AND (SELECT CONVERT(CHAR(3), Fa_MonthDetails.mo_name)) = @MonthName AND Fa_MonthDetails.mon_year = @Year End
MadMyche
Что содержит фактическая таблица? Каковы правила ведения бизнеса?
Santosh kumar Pithani
Сделайте группировку по вашему запросу.В вашем запросе "ISNULL( case condition,") " использует свои средства для извлечения каждой записи, но столбец "fa_ComponentMaster.Cm_ADTag" разбивается на 4 столбца, поэтому вы не можете получить то, что ожидали.
K K Shah
группировка по чему ? .... я пробовал, но это давало ошибку
Santosh kumar Pithani
Покажите мне сообщение об ошибке.