计算成本效益比、净现值和内部收益率可采用存储过程或触发器进行实现。这里使用触发器的方式来计算指标
时间: 2024-03-22 14:42:58 浏览: 28
计算成本效益比、净现值和内部收益率的触发器实现步骤如下:
1. 首先,创建一个计算指标的触发器。该触发器应该与涉及到项目成本和收益的表相关联,例如项目成本表和项目收益表。
2. 在触发器中,首先获取项目成本和收益的数据。可以使用 INSERTED 和 DELETED 表来获取插入或更新的行数据,然后进行计算。
3. 计算成本效益比、净现值和内部收益率。可以使用 SQL Server 的内置函数来计算这些指标,例如 NPV() 和 IRR() 函数。
4. 将计算后的指标值插入到指标表中。可以使用 INSERT INTO 语句将计算后的指标值插入到指标表中。
示例代码如下:
```
CREATE TRIGGER trg_calculate_indicators
ON project_costs
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @project_id INT
DECLARE @total_cost DECIMAL(18,2)
DECLARE @total_revenue DECIMAL(18,2)
DECLARE @cbr DECIMAL(18,2)
DECLARE @npv DECIMAL(18,2)
DECLARE @irr DECIMAL(18,2)
SELECT @project_id = project_id, @total_cost = SUM(cost)
FROM project_costs
WHERE project_id IN (SELECT project_id FROM INSERTED)
GROUP BY project_id
SELECT @total_revenue = SUM(revenue)
FROM project_revenues
WHERE project_id IN (SELECT project_id FROM INSERTED)
SET @cbr = @total_revenue / @total_cost
SET @npv = NPV(0.1, @total_cost, @total_revenue)
SET @irr = IRR(@total_cost, @total_revenue)
INSERT INTO project_indicators (project_id, cbr, npv, irr)
VALUES (@project_id, @cbr, @npv, @irr)
END
```
该触发器将在 project_costs 表上的 INSERT 或 UPDATE 操作触发,并计算成本效益比、净现值和内部收益率,然后将计算后的指标值插入到 project_indicators 表中。需要根据具体业务需求修改代码。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)