我有三张桌子 - TableA,TableB&表C。
TableC是TableA& amp;的合并。表B。
表格结构如下:
表A
SID Fname Lname工作等级EndDate
101 Rosy Maria Doctor A3 06/10/2009
102 Shane Watson经理A1 21/02/2010
103 George Michael Lawyer A5 11/04/2015
104 Stella Kim老师A2 30/09/2007
105 Amanda Lee会计师A4 15/08/2012
表B
SID Dept Grade EndDate
102财务A4 19/05/2012
103法律A1 28/02/2008
规则:
1. TableA.SID = TableB.SID
2. TableC.EndDate =来自TableA& amp;的联合记录中最早的EndDate日期。表B
3. TableC.Grade =来自TableA&的联合记录的最早EndDate日期的等级。表B
我在TableA& amp; TableB获取TableC的结果但无法获得正确的结果。那么请你帮我使用上面的规则使用密钥SID连接表A和表B.
由于
答案 0 :(得分:0)
使用ID字段SID加入两个表A和表B,并在SELECT列表中使用CASE语句,如
SELECT
A.SID,
A.FNAME,
A.LNAME,
A.JOB,B.DPT
CASE WHEN (A.ENDDATE > B.ENDDATE) THEN A.ENDDATE ELSE B.ENDDATE END 'ENDDATE',
CASE WHEN (A.ENDDATE > B.ENDDATE) THEN A.GRADE ELSE B.GRADE END 'GRADE'
FROM TABLEA A
JOIN TABLEB B
ON A.SID = B.SID