Oracle SQL 与 3 个连接表不同
Oracle SQL Distinct with 3 Join Tables
我想加入我的 3 桌。
目前我只定了2张桌子。现在不知道如何加入它。
Table:WA_GA_TBL_ARTICLES
具有属性:ARTICLEID
和 INVENTORYID_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
我想加入我的 3 桌。
目前我只定了2张桌子。现在不知道如何加入它。
Table:WA_GA_TBL_ARTICLES
具有属性:ARTICLEID
和 INVENTORYID_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