Comment puis-je get des détails sur les employés s'ils gagnent plus que leur niveau de rémunération?

J'ai une database avec les employés et tous les employés ont un niveau de paiement en fonction de leur expérience (calculé à partir de la date d'embauche) mais certains gagnent plus en raison de leur expérience antérieure. J'ai deux tables table des employés (détails sur l'employé, y compris leur numéro de paye) et le tableau de niveau de paiement (détails du niveau de rémunération) Années d'expérience est calculée. Ma question est de faire en sorte que tous les employés qui gagnent plus que leur niveau de rémunération disent gagner. Tout est connecté à une vue.

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

Alors, comment puis-je voir si le niveau de salaire de chaque employé correspond au salaire de ce numéro de salaire spécifique (le salaire est dans le tableau de paye)? Je ne suis pas sûr si je le request de la bonne manière mais n'importe quelle aide serait appréciée.

 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 

Étant donné les informations que vous avez fournies (et sans les schémas de table, malheureusement), ce qui suit pourrait servir de guide.

Le principe de base est que le salaire réel qu'un employé gagne doit être comparé au salaire attendu en faisant correspondre les niveaux de salaire dans chaque tableau:

 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 

J'espère que cela aide


Ravinda,
avec le schéma mis à jour, voici la déclaration probable que vous utiliseriez. J'ai supposé que quelque part dans la table de comptable vous avez une colonne avec la valeur de salaire réelle.

 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 

S'il vous plaît fournir la colonne ou la source de salaire réel afin qu'il puisse être affiné mieux,

Merci,