首页 > 解决方案 > 一个 SQL Server 查询,将每个人的养老基金的价值增加一个月的缴款价值

问题描述

我有一个我正在努力解决的 SQL 查询问题,我对此很陌生。

基本上我有一个养老基金,每个月员工每月都会向它缴纳工资的 5%。

在我学习的过程中,我发现很难弄清楚最好的查询类型(我的意思是INSERT等)是什么,以及你们希望我提供什么样的信息来提供帮助?还使用 SQL Server Management Studio

谢谢!

INSERT INTO CompanyEmployees (FirstName, LastName, Age, Salary, PositionID, PensionID) 
VALUES ('John', 'Doe', 33, 30.000, 
           (SELECT TOP 1 ID 
            FROM JobPosition 
            WHERE Title = 'IT Support'),
           (SELECT ID 
            FROM PensionFunds 
            WHERE Amount = 250.00));

INSERT INTO PensionFunds (Amount, PensionProvider) 
VALUES ('250.00', 3)

所以基本上,每个月我都需要“John Doe”将他 30.000 的 5% 捐给他的 PensionFund。

希望这就是你们所追求的。抱歉,如果 SQL 不符合要求。

标签: sql-server

解决方案


我会期待这样的事情:

INSERT INTO PensionFunds (EmployeeId, Amount, PensionProvider) 
    SELECT EmployeeId, Salary * 0.05, PensionId
    FROM CompanyEmployees;

这并没有考虑到无数的事情,例如:

  • 并非所有行都CompanyEmployees可能是活跃员工。
  • 并非所有行都CompanyEmployees可能向养老基金捐款。
  • 可能有重复CompanyEmployees(如果有人有两个兼职职位怎么办)。
  • 您似乎没有日期,因此您允许同时进行多个贡献。
  • 也许并非所有员工都贡献 5%。

推荐阅读