我遇到的问题是我的查询中存在数据重复。
问题就是这个问题。
我有一个包含以下数据的视图表: (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行的方法。
My Table key is
ID , Item_Term, Date , Item_Type and Item_NO
答案 0 :(得分:0)
尝试加入Date
并使用表B作为主表,表A在左联接中
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';
希望这可以解决你的问题。