我想選擇哪個比率更大,並根據UNION ALL的結果將其輸入到單個查詢結果中。例如,員工200每小時賺取25美元作爲基本費率,但他工作的工作基礎費率爲10.00。那麼他每小時應該得到25.00。員工100的基本費率爲10.00,但該職位的基準費率爲25.00。所以他也應該每小時25.00。我想選擇每個員工的最高費率。類似於這個想法的東西。 SELECT僱員,RATE_A或RATE_B ....下面是一些我的數據放在一起根據兩個不同列選擇哪個值更大
CREATE Table WageRate(
[ID] [int] IDENTITY(1,1) NOT NULL,
[RateCode] int NULL,
[Rate] Decimal (10,2) NULL
)
INSERT INTO WageRate(RateCode,Rate)
Values (1,10.00), (2,15.00), (3,20.00), (4,25.00)
Create Table Employee(
[ID] [int] IDENTITY(1,1) NOT NULL,
[EmployeeID] int NULL,
[RateCode] int NULL
)
Insert Into Employee (EmployeeID,RateCode)
Values (100,1), (200,4)
Create Table TimeCards(
[ID] [int] IDENTITY(1,1) NOT NULL,
[EmployeeID] int NULL,
[Hours] Decimal (10,2) NULL,
[JobRateCode] int NULL
)
Insert Into TimeCards (EmployeeID,[Hours],JobRateCode)
Values (100,8.00,4), (200,8.00,1)
SELECT t1.Employeeid ,(t0.Rate) as [Rate_A] ,Null FROM WageRate t0
INNER JOIN Employee t1 ON t1.RateCode= t0.RateCode
INNER JOIN TimeCards t2 on t1.EmployeeID = t2.EmployeeID
UNION ALL
SELECT t4.Employeeid ,Null,(t3.Rate) As [Rate_B] FROM WageRate t3
INNER JOIN TimeCards t4 on t4.JobRateCode = t3.RateCode
INNER JOIN Employee t5 ON t4.EmployeeID= t5.EmployeeID
如果您不使用它們作爲代理鍵,那麼表中的標識列有什麼意義?我的意思是,如果你的'Employee'表中已經有'EmployeeId',爲什麼你還有一個'ID'列? –