-1
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”字段。如何在这两个表之间建立关系

4

1 回答 1

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 达到相同的预期结果。

于 2013-08-18T13:23:48.103 回答