2015-07-14 4 views
0

Я попробовал СОЮЗ две таблицы и оставил соединение, но результат не хочу. Любая идея? Пожалуйста, помогите.UNION или Left Join?

Таблица

Deduction_No GROUP_ID EMP_ID  Service_code AMT 
PRD533  PRG158  NULL   2351   35  
PRD533  PRG158  NULL   4854   160   
PRD533  PRG158  NULL   4857   44   
PRD533  PRG158  NULL   6611   3    

Таблица б

Deduction_No GROUP_ID EMP_ID  Is_Selected Deduct_Amt 
PRD533   PRG158  001    Y   82 
PRD533   PRG158  001    N   0 
PRD533   PRG158  002    Y   195 
PRD533   PRG158  002    N   0 
PRD533   PRG158  003    Y   79 
PRD533   PRG158  003    N   0 
PRD533   PRG158  004    Y   107 
PRD533   PRG158  004    N   0 

выход, но я не хочу, как это (UNION)

Deduction_No GROUP_ID EMP_ID  Service_code  Deduct_Atm 
PRD533  PRG158  001   -    
PRD533  PRG158  002   -    
PRD533  PRG158  003   -    
PRD533  PRG158  004   -     
PRD533  PRG158  -   2351    35 
PRD533  PRG158  -   4854    160  
PRD533  PRG158  -   4857    44 
PRD533  PRG158  -   6611    3 

Вывод с использованием соединения слева

Deduction_No GROUP_ID EMP_ID  Service_code  Deduct_Atm 
PRD533  PRG158  001   2351    35 
PRD533  PRG158  001   4854    160 
PRD533  PRG158  001   4857    44 
PRD533  PRG158  001   6611    3  
PRD533  PRG158  002   2351    35 
PRD533  PRG158  002   4854    160 
PRD533  PRG158  002   4857    44 
PRD533  PRG158  002   6611    3 

Желаемая выход

Deduction_No GROUP_ID EMP_ID  Service_code AMT 
PRD533  PRG158  001   2351   35 
PRD533  PRG158  002   2351   35 
PRD533  PRG158  003   2351   35  
PRD533  PRG158  001   4854   160   
PRD533  PRG158  002   4857   44 
PRD533  PRG158  004   4857   44   
PRD533  PRG158  003   6611   3  
PRD533  PRG158  004   6611   3 

Спасибо

+2

Да, вы, вероятно, хотите присоединиться к левому краю –

+0

На каком условии вы хотите присоединиться? Почему в желаемом выходе заказывается таким образом? –

+0

@SkinnyJ, я пытаюсь использовать левое соединение, но отображаю результат ошибки. – user3559600

ответ

0

Этот запрос:

SELECT a.DEDUCTION_NO, a.GROUP_ID, b.EMP_ID, a.SERVICE_CODE, a.AMT 
FROM #a a 
LEFT JOIN #b b ON a.DEDUCTION_NO = b.DEDUCTION_NO 
WHERE b.IS_SELECTED ='Y' 
ORDER BY Service_code 

Даст вам следующий вывод:

DEDUCTION_NO GROUP_ID EMP_ID SERVICE_CODE AMT 
    PRD533  PRG158  1  2351   35 
    PRD533  PRG158  2  2351   35 
    PRD533  PRG158  3  2351   35 
    PRD533  PRG158  4  2351   35 
    PRD533  PRG158  1  4854   160 
    PRD533  PRG158  2  4854   160 
    PRD533  PRG158  3  4854   160 
    PRD533  PRG158  4  4854   160 
    PRD533  PRG158  1  4857   44 
    PRD533  PRG158  2  4857   44 
    PRD533  PRG158  3  4857   44 
    PRD533  PRG158  4  4857   44 
    PRD533  PRG158  1  6611   3 
    PRD533  PRG158  2  6611   3 
    PRD533  PRG158  3  6611   3 
    PRD533  PRG158  4  6611   3 

Поскольку вы не даете мне больше информации Я не могу вам помочь, вы должны указать, как должны быть данные cted, на условиях которого и т. д.

Смежные вопросы