sql sever 求工资总和

连接了员工信息表(员工号,姓名,性别,出生日期,所在部门,所在岗位,入职时间,管理员编号)和月度薪资表(薪资表编号,年份,月份,基本工资,补贴,扣款,员工号,考勤表编号,管理员编号)两个表 现在想查询某个员工的总工资 (基本工资+补贴+扣款),请问该怎么求和?

img

直接group即可,sum里是三个列和

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/704405
  • 这篇博客你也可以参考下:肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
  • 除此之外, 这篇博客: SQL处理表结构的基本方法整理(创建表,关联表,复制表)中的 只复制表结构到新表 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2

    即:让WHERE条件不成立.

    方法二:(由tianshibao提供)
    CREATE TABLE 新表 LIKE 旧表

  • 以下回答由chatgpt基于相关博客总结生成:

    我可以通过以下SQL语句来连接员工信息表和月度薪资表,查询某个员工的总工资:

    SELECT 
        E.employee_id, 
        E.employee_name, 
        SUM(S.salary_base + S.salary_allowance - S.salary_deduct) AS total_salary
    FROM 
        employee E 
        JOIN salary S ON E.employee_id = S.employee_id 
    WHERE 
        E.employee_name = '员工姓名'
    GROUP BY 
        E.employee_id, E.employee_name;
    

    代码解释:

    首先,我们通过JOIN关键字将employee表和salary表连接起来,以获得每个员工的基本工资、补贴和扣款信息。

    然后,我们使用SUM函数将基本工资、补贴和扣款相加,获得每个员工的总工资。

    最后,我们使用WHERE子句限制查询结果,只查询指定员工的信息。

    注意,为了避免查询结果出现重复员工信息,我们需要使用GROUP BY子句对员工ID和姓名进行分组。

    需要注意的一些问题:

    1. 在上述SQL语句中,我们假设employee表包含一个employee_id列和一个employee_name列,而salary表包含一个employee_id列、一个salary_base列、一个salary_allowance列和一个salary_deduct列。如果你的表结构不同,你需要相应地修改SQL语句。

    2. 在实际使用中,我们应该通过参数化查询的方式来保护查询语句不受SQL注入攻击。具体做法是使用存储过程或者使用参数化SQL命令。例如,在C#中,我们可以使用SqlCommand对象和SqlParameter对象来实现参数化查询。

    3. 在查询结果中,我们只返回了员工ID、员工姓名和总工资三列,如果你需要返回更多的列,可以相应地修改SELECT语句中的列。

    总之,以上SQL语句可以实现在SQL Server中连接员工信息表和月度薪资表,查询某个员工的总工资。