pk222-dotnet Ответов: 1

Сумма заработной платы по выбранным месяцам с использованием процедуры SQL


у меня есть общая фактическая зарплата toatal месяцев.но я хочу суммировать по месяцам и добавить на основе выбранных месяцев любую помощь

Что я уже пробовал:

 select
		@TotalDaysImportedYTD = @PayPeriodCount*10
		
	 select
		@DaysDifference = @TotalDaysBudgetedYTD-@TotalDaysImportedYTD

	 select
		@TotalEmployeeActuals = isnull(sum(Amount),0)
	  from 
		dbo.EmployeeActuals
	 where
		PositionID=@PositionId and
		month(PeriodEndDate) in (select BudgetMonth from @BudgetMonthInfo) and
		Year(PeriodEndDate)=@BudgetYear and IsDeleted=0
	if(@TotalDaysImportedYTD>0)
	begin
		select
			@TotalAdjustedActuals = ((@TotalEmployeeActuals/@TotalDaysImportedYTD)*(@DaysDifference))+@TotalEmployeeActuals
	end
	return isnull(@TotalAdjustedActuals,0)
end

OriginalGriff

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Итак, расскажите нам, что делает то, чего вы не ожидали, или не делает то, что вы сделали.
Сообщайте нам о любых сообщениях об ошибках.
Дайте нам пример входных и выходных данных - включая то, что он генерирует и что вы хотите генерировать.
Просто сбросив код и сказав "это не работает", вы никому не поможете!

Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

1 Ответов

Рейтинг:
1

Maciej Los

Это было бы что-то вроде этого:

SELECT DATEFROMPARTS(YEAR(PeriodEndDate), MONTH(PeriodEndDate), 1) AS [Month], SUM(Amount)
FROM YourTable
WHERE PeriodEndDate >= @datefrom AND PeriodEndDate <= @dateto
GROUP BY DATEFROMPARTS(YEAR(PeriodEndDate), MONTH(PeriodEndDate), 1)
--or WHERE PeriodEndDate BETWEEN @datefrom AND @dateto


Больше:
DATEFROMPARTS (Transact-SQL) - SQL Server | Microsoft Docs[^]