加入两个表,但不过滤任何功能

时间:2015-07-13 02:21:24

标签: sql

我想使用左连接加入两个表,但结果不是我预期的,is_selected不起作用。 EMP_ID 004仍然出现。我的查询有什么问题?请帮忙......谢谢

代码

SELECT DISTINCT
a.Type,
COALESCE (a.EMP_ID,b.EMP_ID) AS ID, 
a.Deduction_No,
a.Home_Amt,
a.Deduction_Amt,
a.Group_ID,
b.Is_Selected,
From Table a
Left Outer join Table b (a.Deduction_No = b.Deduction_No)
WHERE Is_Selected = 'Y'

表a

Deduction_No  Type    GROUP_ID    EMP_ID     Service_code    AMT
 V1001         EMP                  001      D1008           10    
 V1001         GRP       G185       NULL     C1009           20        
 V1001         GRP       G185       NULL     C1009           35          
 V1001         GRP       G185       NULL     C1009          20               

表b

Deduction_No  GROUP_ID    EMP_ID       Is_Selected
 V1001         G185       001               Y     
 V1001         G185       002               Y       
 V1001         G185       003               Y            
 V1001         G185       004               N  

输出错误

Deduction_No  Type    GROUP_ID    EMP_ID     Service_code    AMT    Is_Selected
 V1001         EMP                  001      D1008           10           Y 
 V1001         GRP       G185       001      C1009           20           Y
 V1001         GRP       G185       002      C1009           35           Y
 V1001         GRP       G185       003      C1009           20          Y                                               
 V1001         GRP       G185       004      C1009           95           Y

期望的输出

   Deduction_No  Type    GROUP_ID    EMP_ID     Service_code    AMT    Is_Selected
 V1001         EMP                  001      D1008           10           Y 
 V1001         GRP       G185       001      C1009           20           Y
 V1001         GRP       G185       002      C1009           35           Y
 V1001         GRP       G185       003      C1009           20          Y                                               

谢谢

1 个答案:

答案 0 :(得分:0)

我想,如果我理解正确,你正在寻找这样的东西:

SELECT DISTINCT
a.Type,
COALESCE (a.EMP_ID,b.EMP_ID) AS ID, 
a.Deduction_No,
a.Home_Amt,
a.Deduction_Amt,
a.Group_ID,
b.Is_Selected,
From Table a
Left Outer join Table b on(a.Deduction_No = b.Deduction_No and Is_Selected = 'Y')