Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如果员工的收入高于工资水平,我如何获取员工详细信息?_Sql Server - Fatal编程技术网

Sql server 如果员工的收入高于工资水平,我如何获取员工详细信息?

Sql server 如果员工的收入高于工资水平,我如何获取员工详细信息?,sql-server,Sql Server,我有一个员工数据库,所有员工都根据他们的经验(从雇佣日期算起)有一个工资水平,但有些人因为以前的经验而收入更高。我有两个表:员工表(关于员工的详细信息,包括他们的工资级别编号)和工资级别表(工资级别的详细信息) 多年的经验是经过计算的。我的问题是让所有收入超过工资水平的员工都说出他们的收入。一切都连接到一个视图 SELECT Accountant_Name, Hire_Date, Pay_Level_Name, 'Pay_Level_No' CONVERT (INT,Experience_in_

我有一个员工数据库,所有员工都根据他们的经验(从雇佣日期算起)有一个工资水平,但有些人因为以前的经验而收入更高。我有两个表:员工表(关于员工的详细信息,包括他们的工资级别编号)和工资级别表(工资级别的详细信息) 多年的经验是经过计算的。我的问题是让所有收入超过工资水平的员工都说出他们的收入。一切都连接到一个视图

SELECT Accountant_Name, Hire_Date, Pay_Level_Name, 'Pay_Level_No'
CONVERT (INT,Experience_in_Years) as 'XP in years'
FROM accountant_view;
那么,我如何查看每个员工的薪酬水平是否与该特定薪酬水平编号的薪酬匹配(薪酬在薪酬水平表中) 我不确定我的请求是否正确,但如果有任何帮助,我将不胜感激

CREATE TABLE paylevel
(paylevel_no SMALLINT IDENTITY (1,1),
paylevel_name VARCHAR (25) NOT NULL,
annual_pay MONEY NOT NULL,
min_experience CHAR (3) NOT NULL,

CONSTRAINT paylevel_pk PRIMARY KEY (paylevel_no)
);
GO

CREATE TABLE accountant
(accountant_id INT NOT NULL IDENTITY (01, 1),
branch_id SMALLINT NOT NULL,
paylevel_no SMALLINT NOT NULL,
first_name VARCHAR (20) NOT NULL

根据您提供的信息(不幸的是,没有实际的表模式),以下内容可以作为指导

基本前提是,员工的实际薪酬需要通过匹配每个表中的薪酬水平与预期薪酬进行比较:

SELECT emp.ID, emp.PayLevel, emp.ActualPay, pl.PayLevel, pl.Pay_Level_Name, pl.ExpectedPay
FROM Employees emp
INNER JOIN Paylevels pl ON pl.PayLevel = emp.PayLevel
WHERE  emp.ActualPay > pl.ExpectedPay
希望这有帮助


峡谷,
对于更新的模式,下面是您可能会使用的语句。我推测,在会计表的某个地方,你有一列实际的工资价值

SELECT ac.accountant_id, ac.first_name, ac.branch_id, pl.paylevel_name, pl.annual_pay, ac.actual_pay
FROM accountant ac
INNER JOIN paylevel pl ON ac.paylevel_no = pl.paylevel_no
WHERE ac.actual_pay > pl.annual_pay
请提供实际支付栏或来源,以便更好地细化


谢谢,

所以您正试图让所有这些员工都有以前的工作经验。对吗?我正试图让所有收入超过其指定薪酬水平的用户参与进来。因此,是的,我正在尝试获取具有以前经验的用户,但数据库中不包含该用户是否具有以前的经验。只有他们在公司工作的时间是有限的。谢谢。你能告诉我这两张桌子的结构吗?@WaqasShabbir,我说了。很抱歉,我之前没有。我不清楚您的表格结构,首先它没有给出该会计师(员工)的任何当前工资,其次在会计表格中,受雇者在哪里?