Oracle SQL 与 3 个连接表不同

Oracle SQL Distinct with 3 Join Tables

我想加入我的 3 桌。

目前我只定了2张桌子。现在不知道如何加入它。

Table:WA_GA_TBL_ARTICLES 具有属性:ARTICLEIDINVENTORYID_FK.

这里是查询:

SELECT
DISTINCT
S.FORM_NO,
S.ARTICLEID_FK,
S.BOX_SERIAL_NO,
S.ACTUAL_WEIGHT,
TO_CHAR(S.DATEADDED, 'DD-MON-YYYY HH24:MI:SS') AS DATEADDEDS,
S.ADDEDBY,
B.BOX_SERIAL_NO,
B.ARTICLEID_FK,
B.DATE_CODE,
B.SO_NO
FROM WA_LA_TBL_ARTICLES_SCAN S JOIN
WA_LA_TBL_ARTICLES_BOX_SN B
ON S.BOX_SERIAL_NO = B.BOX_SERIAL_NO AND
TO_CHAR(S.DATEADDED, 'YYYY-MM-DD HH24:MI') BETWEEN '2018-08-01 08:00' AND '2018-08-02 07:59'
ORDER BY S.ARTICLEID_FK, B.BOX_SERIAL_NO ASC

我的问题,如何使用参数 ARTICLEID = B.ARTICLEID_FK

加入 WA_GA_TBL_ARTICLES 以上查询

有什么想法吗?

SELECT DISTINCT
      S.FORM_NO,
      S.ARTICLEID_FK,
      S.BOX_SERIAL_NO,
      S.ACTUAL_WEIGHT,
      TO_CHAR(S.DATEADDED, 'DD-MON-YYYY HH24:MI:SS') AS DATEADDEDS,
      S.ADDEDBY,
      B.BOX_SERIAL_NO,
      B.ARTICLEID_FK,
      B.DATE_CODE,
      B.SO_NO
FROM WA_LA_TBL_ARTICLES_SCAN S 
JOIN WA_LA_TBL_ARTICLES_BOX_SN B
    ON S.BOX_SERIAL_NO = B.BOX_SERIAL_NO 
   AND TO_CHAR(S.DATEADDED, 'YYYY-MM-DD HH24:MI') BETWEEN '2018-08-01 08:00' AND '2018-08-02 07:59'
join WA_GA_TBL_ARTICLES w  on  w.ARTICLEID = B.ARTICLEID_FK
ORDER BY S.ARTICLEID_FK, B.BOX_SERIAL_NO ASC

如果我理解正确,你可以添加连接

  SELECT
  DISTINCT
  S.FORM_NO,
  S.ARTICLEID_FK,
  S.BOX_SERIAL_NO,
  S.ACTUAL_WEIGHT,
  TO_CHAR(S.DATEADDED, 'DD-MON-YYYY HH24:MI:SS') AS DATEADDEDS,
  S.ADDEDBY,
  B.BOX_SERIAL_NO,
  B.ARTICLEID_FK,
  B.DATE_CODE,
  B.SO_NO
  FROM WA_LA_TBL_ARTICLES_SCAN S 
  JOIN WA_LA_TBL_ARTICLES_BOX_SN B ON S.BOX_SERIAL_NO = B.BOX_SERIAL_NO AND
  TO_CHAR(S.DATEADDED, 'YYYY-MM-DD HH24:MI') BETWEEN '2018-08-01 08:00' AND '2018-08-02 07:59'

  JOIN  WA_GA_TBL_ARTICLES C ON C.ARTICLEID = B.ARTICLEID_FK 

  ORDER BY S.ARTICLEID_FK, B.BOX_SERIAL_NO ASC

并在select

中添加你需要的WA_GA_TBL_ARTICLES C