2016-09-22 67 views
1

我有一個員工數據庫,所有員工根據他們的經驗(根據僱用日期計算)都有薪水水平,但由於以前的經驗,有些員工的薪水更高。我有兩個表員工表(員工的詳細信息,包括他們的薪水級別)和薪酬水平表(薪水水平的詳細信息) 計算經驗年數。我的問題是讓所有掙得超過他們的薪水水平的員工說他們賺到了。一切都連接到一個視圖。如果員工的收入超過他們的薪水水平,我該如何獲得員工詳細信息?

SELECT Accountant_Name, Hire_Date, Pay_Level_Name, 'Pay_Level_No' 
CONVERT (INT,Experience_in_Years) as 'XP in years' 
FROM accountant_view; 

那麼,如何看到每個員工的薪酬水平是否與特定的薪酬水平數(薪水在PAYLEVEL表) 的工資我不知道我是否要求在正確匹配方式,但任何幫助,將不勝感激。

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 
+0

所以你想獲得有以前的經驗所有的員工。對? –

+0

我試圖讓所有賺取超過他們指定的薪水水平的用戶。所以是的,我試圖讓用戶以前的經驗,但用戶是否有以前的經驗不在數據庫中。只有他們爲公司工作的那些年。謝謝。 –

+0

你可以給兩個表的結構嗎? –

回答

1

根據您提供的信息(並且不幸的是沒有實際的表格模式),以下內容將作爲指導。

基本PREMIS是,實際工資僱員收入的需求相比,在每個表了相匹配的薪酬水平來預期交錢:

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 

希望這有助於


Ravinda,
與更新的模式,這裏是您可能會使用的語句。我猜測會計師表中的某個地方有一列實際支付價值的專欄。

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 

請提供真實的薪酬列或源,因此它可以細化越好,

感謝,

相關問題