Other EXP SQL function


1. Usage of EXP to show Exponential Sales Growth

SQL Server Query 1

            
 WITH Periods AS (  
SELECT 0 AS PeriodSales, CAST(1000 AS FLOAT) AS Sales -- Initial sales value
UNION ALL
SELECT PeriodSales + 1, 1000 * EXP(0.05 * (PeriodSales + 1)) -- 5% growth rate per period
FROM Periods
WHERE PeriodSales < 10 -- Number of periods (e.g., years)
)
-- 2. Select the results
SELECT
PeriodSales,
ROUND(Sales, 2) AS ProjectedSales
FROM Periods
ORDER BY PeriodSales;

Create SQL query with SqlQueryBuilder 1

            
 var (sql1, parameters1) = new SqlQueryBuilder()  
.WithCTETable(new Table("Periods"), new SqlQueryBuilder()
.Select()
.Column(0, "PeriodSales")
.Column(new CAST(1000, SqlDataType.FLOAT), "Sales")
.UnionAll(new SqlQueryBuilder().Select()
.Column(new ColumnArithmatic("PeriodSales").ADD(1), "PeriodSales")
.Column(new ColumnArithmatic(1000).MULTIPLY(new EXP(new ColumnArithmatic(0.05).MULTIPLY(new ColumnArithmatic("PeriodSales").ADD(1)))), "Sales")
.From("Periods")
.Where(new Where(new Column("PeriodSales").LessThan(10)))
)
)
.Select().Column("PeriodSales", "PeriodSales")
.Column(new ROUND(new Column("Sales"), 2), "ProjectedSales")
.From("Periods")
.OrderBy(new OrderBy().SetColumnAscending("PeriodSales"))
.Build();

Query build by SqlQueryBuilder 1

            
WITH Periods
AS (SELECT @pMAIN_2507192059031494830 AS PeriodSales,
           CAST (@pMAIN_2507192059031494831 AS FLOAT) AS Sales
    UNION ALL
    SELECT PeriodSales + @pMAIN_2507192059031494832 AS PeriodSales,
           @pMAIN_2507192059031494833 * EXP(@pMAIN_2507192059031494834 * (PeriodSales + @pMAIN_2507192059031494835)) AS Sales
    FROM Periods
    WHERE PeriodSales < @pMAIN_2507192059031494836)
SELECT PeriodSales AS PeriodSales,
       ROUND(Sales, @pMAIN_2507192059031494837, @pMAIN_2507192059031494838) AS ProjectedSales
FROM Periods
ORDER BY PeriodSales ASC;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192059031494830 0
@pMAIN_2507192059031494831 1000
@pMAIN_2507192059031494832 1
@pMAIN_2507192059031494833 1000
@pMAIN_2507192059031494834 0.05
@pMAIN_2507192059031494835 1
@pMAIN_2507192059031494836 10
@pMAIN_2507192059031494837 2
@pMAIN_2507192059031494838 0

Query Results 1:

  PeriodSales ProjectedSales
1 0 1000
2 1 1051.27
3 2 1105.17
4 3 1161.83
5 4 1221.4
6 5 1284.03
7 6 1349.86
8 7 1419.07
9 8 1491.82
10 9 1568.31
11 10 1648.72