Возвращает несколько значений из запроса, но подзапрос не разрешен.
я нашел решение использовать top 1 в запросе, но он возвращает только одно верхнее значение. Я знаю, что переменная хранит только одно значение, но я не могу найти другого способа сделать это.
Вот моя хранимая процедура
пожалуйста помочь.
Table 1: dbo.tblEmpDetail (Name varchar(30), BasicPay int, ScaleID int)
Table 2: dbo.tblAllowance (Name varchar(30), Amount int, ScaleID int)
Table 3: dbo.tblDeduction (Name varchar(30), Amount int, ScaleID int)
alter proc Test as begin /*Tax cal variable*/ /*AllowanceDeduction cal vairable*/ declare @totaldeduc int, @totalAllowance int, @grosspay int set @totaldeduc = ( select sum(Amount) from tblAllowance A inner join tblEmpOfficialDetail O on O.ScaleID=A.ScaleID group by A.ScaleID, O.EmpID) set @totalAllowance= ( select sum(Amount) from tblDeduction A inner join tblEmpOfficialDetail O on O.ScaleID=A.ScaleID group by A.ScaleID, O.EmpID) set @grosspay= (select O.BasicPay from tblEmpOfficialDetail O inner join tblAllowance A on A.ScaleID=O.ScaleID inner join tblDeduction D on D.ScaleID=O.ScaleID group by o.ScaleID,o.EmpID, O.BasicPay )+@totaldeduc-@totalAllowance select @grosspay end Execute Test
Что я уже пробовал:
Я пытаюсь рассчитать валовую заработную плату всех сотрудников, добавляя надбавки [dbo.tblAllowances] и вычитая вычеты [dbo.Deductions] против конкретного ранга сотрудника из базовой заработной платы [dbo.EmpDetails] сотрудника.
Suvendu Shekhar Giri
Ошибка имеет смысл, и она работает таким образом по какой-то причине. Каково именно ваше требование?
Пожалуйста, объясните немного больше о вашем требовании, и мы постараемся предложить вам подходящее приложение.
Ribha Shakoor
Проверьте это сейчас пожалуйста