SELECT DISTINCT CSSC_MASTER_VIEW."Created_by",
SUM (CSSC_MASTER_VIEW.NO_OF_LINES_PROCESSED),
CSSC_MASTER_VIEW.TYCO_CALENDAR_MONTH_NM,
CSSC_MASTER_VIEW.TYCO_CALENDAR_YEAR_ID,
CSSC_MASTER_VIEW."Source_ID"
FROM CCO.CSSC_MASTER_VIEW CSSC_MASTER_VIEW
WHERE (CSSC_MASTER_VIEW."Created_by" = 'TE160961')
AND (CSSC_MASTER_VIEW.TYCO_CALENDAR_MONTH_NM = 'JULY')
AND (CSSC_MASTER_VIEW.TYCO_CALENDAR_YEAR_ID = 2013)
AND (CSSC_MASTER_VIEW."Source_ID" = '10')
GROUP BY CSSC_MASTER_VIEW."Created_by",
CSSC_MASTER_VIEW.NO_OF_LINES_PROCESSED,
CSSC_MASTER_VIEW.TYCO_CALENDAR_MONTH_NM,
CSSC_MASTER_VIEW.TYCO_CALENDAR_YEAR_ID,
CSSC_MASTER_VIEW."Source_ID"
此查询返回NO_OF_LINES_PROCESSED为199,这是绝对正确的。 当我尝试使用另一个表加入此语句时出现问题。
我有另一个名为CSSC_QUALITY_DATA的表,其中包含“Created_by”字段和其他字段。当我在这个字段和CSSC_MASTER_VIEW之间创建连接。“Created_by”时,NO_OF_LINES_PROCESSED返回与我的第一个结果199不匹配。
我知道原因。第二个表有多个“Created_by”字段。我如何在这两个表之间建立关系
答案 0 :(得分:1)
我认为你只需要一个关于JOIN的ON子句,如下所示:
JOIN CSSC_QUALITY_DATA ON CSSC_MASTER_VIEW."Created_by" = CSSC_QUALITY_DATA."Created_by"
最后,为了避免在GROUP BY
子句中你需要区分的所有内容:
GROUP BY CSSC_MASTER_VIEW."Created_by",
CSSC_QUALITY_DATA."Created_by",
通过这种方式,您可以避免使用distinct,并使用Group BY获得相同的所需结果。