Вы можете сделать любой расчет в хранимой процедуре и вернуть данные. Расчет процентов как хранимая процедура требует много расчетов.
Любой способ расчета данных с использованием данных других таблиц.
СУММА мы можем сделать в SP,
Declare @SUMAmount decimal(12,3)
- также объявить @A, @B и т. Д.
Select @SUMAmount= SUM(ISNULL(@A,0)+ISNULL(@B,0)+ISNULL(@C,0)+ISNULL(@D,0))
Select @SUMAmount= SUM((ISNULL(@A,0)+ISNULL(@B,0))*(ISNULL(@C,0)-ISNULL(@D,0)))
Согласно вашему требованию вы можете дать условие.
ISNULL использует для проверки, являются ли данные NULL, а затем возвращает 0. Вычисление с нулевым значением невозможно, поэтому лучше дать условие ISNULL.
Select A,B,SUM(C),D From TableName
Where SUM(C)>0
Group By A,B,D
Здесь есть как агрегатные, так и неагрегированные функции, поэтому вы должны использовать Group By.
Вы можете получить значения в соответствии с вашим условием, например: «Где SUM (C)> 0». Имея также вы можете использовать здесь после Group By.
Declare @TotalNoofDays int
@TotalNoofDays = DATEDIFF(d, fromdate, todate)
Использование для поиска количества дней с использованием этой функции.
Вы можете использовать условие, как,
if @DueAmount >=0
BEGIN
IF @DiscountFlag = 1
BEGIN
SET @DueIntAmount = 0
END
ELSE
BEGIN
SET @DueIntAmount = ((@DueAmount*(@IntRateOnDue/100))/365)*@NoofDays
END
SET @ExcessInterestAmount = 0
END
ELSE
BEGIN
SET @DueIntAmount = 0
SET @ExcessInterestAmount = ((@DueAmount*(@IntRateOnDeposit/100))/365)*@NoofDays
END
Как и вычисления, которые вы можете выполнить в хранимой процедуре.
Если вы хотите выполнять вычисления с количеством записей по одной, тогда вы можете использовать временную таблицу в цикле ..
Create Proc NewLearningProcedure
(
@Name Varchar(50),
@Date DateTime
)
AS
Begin
Declare @Temp Table
(
ID int Identity(1,1),
Name Varchar(50),
Date DateTime
)
Insert Into @Temp
Select @Name,@Date
Declare @i int
set @i=10
While @i>0
Begin
Insert Into @Temp
Select @Name+CAST(@i as varchar(50)),@Date
Set @i=@i-1
End
Select * from @Temp
End
Как будто вы можете делать что-либо с помощью хранимой процедуры.