在人员ID和ASSIGNMENT_ID中获取重复项

时间:2017-03-29 10:00:25

标签: sql oracle plsql oracle11g

这是我正在使用的查询:

select  DISTINCT  "HRG_GOAL_ACCESS"."PERSON_ID" as "PERSON_ID",
     "HRG_GOAL_ACCESS"."BUSINESS_GROUP_ID" as "BUSINESS_GROUP_ID",
     "HRG_GOALS"."GOAL_ID" as "GOAL_ID",
     "HRG_GOALS"."ASSIGNMENT_ID" as "ASSIGNMENT_ID",
     "HRG_GOALS"."GOAL_NAME" as "GOAL_NAME",
     "HRG_MASS_REQ_RESULTS"."ORGANIZATION_ID" as "ORGANIZATION_ID",
     "HRG_MASS_REQ_RESULTS"."RESULT_CODE" as "RESULT_CODE",
     "HRG_GOAL_PLN_ASSIGNMENTS"."CREATED_BY" as "CREATED_BY" 
 from   "FUSION"."HRG_GOAL_PLN_ASSIGNMENTS" "HRG_GOAL_PLN_ASSIGNMENTS",
    "FUSION"."HRG_MASS_REQ_RESULTS" "HRG_MASS_REQ_RESULTS",
    "FUSION"."HRG_GOALS" "HRG_GOALS",
    "FUSION"."HRG_GOAL_ACCESS" "HRG_GOAL_ACCESS" 
 where   "HRG_GOAL_ACCESS"."PERSON_ID"="HRG_GOALS"."PERSON_ID"
 and     "HRG_MASS_REQ_RESULTS"."PERSON_ID"="HRG_GOALS"."PERSON_ID"
 and     "HRG_GOAL_PLN_ASSIGNMENTS"."PERSON_ID"="HRG_MASS_REQ_RESULTS"."PERSON_ID"

输出

PERSON_ID        BUSINESS_GROUP_ID GOAL_ID          ASSIGNMENT_ID  GOAL_NAME RESULT_CODE          CREATED_BY 
---------------- ----------------- --------------- --------------- ------------------ -------------------- -------------------
300000048030404  1                 300000137711224 300000048033078 NANO_CLASS            SUCCESS anonymous  G_1 
300000048030404  1                 300000137637946 300000048033078 INCREASE SALES BY 40% SUCCESS REDDI.SAREDDY G_1 
300000048030404  1                 300000137637946 300000048033078 INCREASE SALES BY 40% SUCCESS CURTIS.FEITTY 

1 个答案:

答案 0 :(得分:1)

您的输出不包含重复项。 PERSON_ID (300000048030404)有多行,但这是因为主表(?HRG_GOAL_ACCESS?)在其子表中有多行。

每行都有不同的细节,因此该集合有效。 HRG_GOALS.GOAL_IDHRG_GOALS.GOAL_NAMEHRG_GOAL_PLN_ASSIGNMENTS.CREATED_BY有不同的值。

如果这种反应不能让你开心,你需要更清楚地解释你的欲望输出会是什么样子。或者,您需要确定数据模型并理解查询返回数据的原因。可能你缺少连接条件;使用distinct可能会妨碍你找到答案。