如何从select中获取非重复值?

时间:2016-04-27 07:01:40

标签: sql oracle

这是我的select语句,它返回重复的行(参见屏幕截图)。  如何防止重复的行?

SELECT 
   A.TOTAL_PRESENT,
   A."LIMIT",
   A.COST_CENTER,
   A.ID,
   A.PLANT,
   A.BUDGET_YEAR,
   A."VERSION",
   B.BUDGET_YEAR,
   B."VERSION",
   B.PLANT,
   B.CHARGE_CC,
   B.YEAR_DATE_USD
FROM
   CMS.SUM_REPANDMAINT A,
   CMS.V_SUM_REPANDMAINT B
WHERE 
   (A.BUDGET_YEAR = B.BUDGET_YEAR(+)) AND 
   (A."VERSION" = B."VERSION"(+)) AND 
   (A.PLANT = B.PLANT(+)) AND 
   (A.COST_CENTER = B.CHARGE_CC(+)) AND
   (B.USERNAME = '[usr_name]')

输出enter image description here

1 个答案:

答案 0 :(得分:0)

重复条目意味着过滤条件不够精确。您的一个数据源会生成多行,WHERE子句不会提供足够的限制。

您尚未发布任何原始数据,因此我们无法告诉您需要哪些其他标准。但是,您应该查看外连接的使用。外部联接意味着如果右侧表的条件与左侧表的条件不匹配,您将返回行。你为什么这样做?