2016-11-10 22 views
1

クエリにデータの重複がある問題があります。SQLクエリでのデータの複製

これは問題の様子です。

私はのデータを表示するテーブルを持っている: (PS_CX_FINC_SF_P_VW)

ID | Item_Term | Item_Amt | Item_Type | Date | Item_NO 
------------------------------------------------------ 
005976 | 1609 | 3000.00 | C | 2016-09-27 | 00010 

(PS_CX_FINC_SF_A_VW)

ID | Item_Term | Item_Amt | Item_Type | Date | Item_NO 
-------------------------------------------- 

005976 | 1609 |  -50.00 | P |  2016-09-27 | 00009 

005976 | 1609 |  -100.00 | P |  2016-10-04 | 00011 

005976 | 1609 |  -50.00 | P |  2016-10-23 | 00012 

私は何を期待すると、この結果は次のとおりです。

ID | Item_Amt | Date | Item_NO | Item_Amt | Date | Item_NO 
---------------------------------------------- 

005976 | 3000.00 | 2016-09-27 | 00010 | -50.00 | 2016-09-27 | 00009 

005976 | NULL | NULL | NULL | -100.00 | 2016-10-04 | 00011 

005976 | NULL | NULL | NULL | -50.00 | 2016-10-23 | 00012 

しかし、私の結果は次のようになってきている。

ID | Item_Amt | Date | Item_NO | Item_Amt | Date | Item_NO 
---------------------------------------------------------- 

005976 | 3000.00 | 2016-09-27 | 00010 | -50.00 | 2016-09-27 | 00009 

005976 | 3000.00 | 2016-09-27 | 00010 | -100.00 | 2016-10-04 | 00011 

005976 | 3000.00 | 2016-09-27 | 00010 | -50.00 | 2016-10-23 | 00012 

これは私のクエリです:

SELECT A.ID, A.ITEM_AMT, A.DATE, A.ITEM_NO, B.ITEM_AMT, B.DATE, B.ITEM_NO 
FROM PS_CX_FINC_SF_P_VW A 
LEFT JOIN PS_CX_FINC_SF_A_VW B ON (A.EMPLID = B.EMPLID AND A.ITEM_TERM = B.ITEM_TERM) 
WHERE A.EMPLID = '00000005976' 
AND A.ITEM_TERM = '1609' 

要件は1行でのお支払いのこれらの2種類を示すことです。最初のタイプのデータを1行しか表示させない方法を見つけることはできません。

My Table key is 
ID , Item_Term, Date , Item_Type and Item_NO 

答えて

0

参加でDateを持ってみて、メインテーブルとして左でとテーブルAをテーブルBを使用するが、これはあなたの問題を解決する必要があり

SELECT B.ID, A.ITEM_AMT, A.DATE, A.ITEM_NO, B.ITEM_AMT, B.DATE, B.ITEM_NO 
FROM PS_CX_FINC_SF_A_VW B 
LEFT JOIN PS_CX_FINC_SF_P_VW A ON (A.EMPLID = B.EMPLID AND A.ITEM_TERM = B.ITEM_TERM AND A.DATE = B.DATE) 
WHERE B.EMPLID = '00000005976' 
AND B.ITEM_TERM = '1609'; 

希望に参加します。

+0

これは機能しません。 Aの結果はすべてnullになります。とにかくお返事ありがとうございましたviki888 –

+0

ええ、テーブルB.からフェッチするために 'B.ID'として修正しました。これにより、正確な結果が得られます – Viki888