2017-08-04 98 views
0

我已經寫下面的查詢來顯示輸出如下(頁面底部),但這不是預期的。書面的SQL查詢不顯示預期的輸出

注意:代碼和說明始終固定在表A中(在未來添加更多的代碼),唯一的百分比變化,數據是uniquecode牽強,有些uniquecode沒有百分比和一些有。

下面的查詢沒有達到我的要求,當Code沒有任何百分比值的時候Code也沒有,應該顯示說明,百分比列顯示爲NULL代碼。

SELECT a.Code, 
     a.Description , 
     b.Percentage, 
FROM TableA a 
    LEFT OUTER JOIN TableB b ON a.Code = b.Code 
WHERE a.Code IN('CIC', 'CIA', 'DAC', 'PIB', 'UTI', 'DAB') 
    AND (b.UniqueCode = 'A100'); 

請參考下表,

Table A 
--------------------------- 
Code Description 
--------------------------- 
CIC  AAAABBBCC 
CIA  HHHHAAAAA 
DAC  HHHIIIIIH 
PIB  BBEEERERE 
UTI  GGGGGGGGGG 
DAC  CCSASASAAS 
BVB  HHHAAAAAAA 
BBC  KKKIIIIWWW 
ABC  BBMMMMAMAA 

Table B: 
-------------------------------- 
Code Percentage UniqueCode 
-------------------------------- 
CIC     A100 
CIA  80   A100 
DAC     A100 
PIB  100   A100 
UTI  100   A100 
DAB  70   A100 
CIC  100   A101 
CIA  80   A101 
DAC     A101 
PIB  100   A101 
UTI  100   A101 
DAB     A101 

預計

-------------------------------- 
    Code Description Percentage 
    -------------------------------- 
    CIC  AAAABBBCC  NULL 
    CIA  HHHHAAAAA  80 
    DAC  HHHIIIIIH  NULL 
    PIB  BBEEERERE  100 
    UTI  GGGGGGGGG  100 
    DAB  CCSASASAA  100 
+1

什麼是s.Code這裏,我認爲它可能是b.code的錯字。 –

+0

它是一個列名 – Harshal

+0

該列在哪個表中? A或B,如果它在A表中,那麼A碼或它應該是B碼 –

回答

0

輸出你有你的where子句,從而有效地迫使內中包含的表B過濾器加入。將其移至連接條件應該可以解決您的問題。

SELECT a.Code, 
     a.Description , 
     b.Percentage, 
FROM TableA a 
    LEFT OUTER JOIN TableB b ON a.Code = b.Code AND (b.UniqueCode = 'A100') 
WHERE a.Code IN('CIC', 'CIA', 'DAC', 'PIB', 'UTI', 'DAB');