一种SQL Server查询,可使每个人的养老基金的价值增加一个月的缴费额

时间:2018-07-10 13:36:41

标签: 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)

因此,基本上,每个月我都需要“约翰·多伊”将其30.000的5%捐入其PensionFund。

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

1 个答案:

答案 0 :(得分:0)

我期望这样的事情:

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

这不会考虑不计其数的事情,例如:

  • 并非CompanyEmployees中的所有行都可能是在职员工。
  • 并非CompanyEmployees中的所有行都可能向养老基金供款。
  • CompanyEmployees中可能有重复项(如果某人有两个兼职职位,那该怎么办)。
  • 您似乎没有约会,因此您允许同时进行多个贡献。
  • 也许不是所有员工都贡献5%。