我有一个名为
的表employee
---------
EmployeeNo(PK)
Fname
Lname
Status
Salary
Position
DeptNo(FK)
我希望在每个部门中显示平均薪水,并使用新列名称Net_total
混淆。
答案 0 :(得分:1)
请试试这个:
ALTER TABLE employee
ADD Net_total INT NOT NULL;
UPDATE employee e
SET e.Net_total = (
SELECT AVG(e1.salary)
FROM employee e1
GROUP BY DeptNo
)
WHERE e1.DeptNo = e.DeptNo;
答案 1 :(得分:1)
无需为此创建额外字段,您可以计算并显示如下值:
select e.EmployeeNo,
e.Fname,
e.Lname,
e.Status,
e.Salary,
e.Position,
e.DeptNo,
(select avg(e2.Salary) from employee e2 where e2.DeptNo = e.DeptNo) as net_total
from employee e
您还可以为此创建视图:
create view vwEmployee as
select e.EmployeeNo,
e.Fname,
e.Lname,
e.Status,
e.Salary,
e.Position,
e.DeptNo,
(select avg(e2.Salary) from employee e2 where e2.DeptNo = e.DeptNo) as net_total
from employee e
现在你可以做到
select * from vwEmployee
答案 2 :(得分:0)
你可以使用avg with partition by
$(document).ready(function () {$('#projEndDt').datetimepicker({useCurrent: false});});
答案 3 :(得分:0)
以下是您的一些选择:
触发器是一种特殊的存储过程,在数据库服务器中发生事件时自动执行。当用户尝试通过数据操纵语言(DML)事件修改数据时,DML触发器执行。 DML事件是表或视图上的INSERT,UPDATE或DELETE语句。无论是否有任何表行受到影响,触发任何有效事件时都会触发这些触发器。
所以方法是改变你的表以添加一个支持NULL的列并添加触发器,每当有INSERT或UPDATE操作时它将更新该列
在此表的顶部创建一个视图,您可以在其中添加另一列,其值根据您的公式动态计算。您将始终使用视图而不是表格,您需要引用Net_total列