我使用下面的代码创建表#1;
SELECT a.DMT_MONTH, a.PRODUCT_CATEGORY, a.INVENTORY_ITEM_ID, SUM(a.OUTPUT)
FROM OUTPUT_TABLE a
INNER JOIN CATEGORY b
ON a.INVENTORY_ITEM_ID = b.INVENTORY_ITEM_ID
AND b.CATEGORY_SET_NAME = 'INVENTORY'
GROUP BY a.DMT_MONTH, a.INVENTORY_ITEM_ID, a.PRODUCT_CATEGORY;
表#1;
+-----------+------------------+-------------------+--------+
| DMT_MONTH | PRODUCT_CATEGORY | INVENTORY_ITEM_ID | OUTPUT |
+-----------+------------------+-------------------+--------+
| May-19 | Mouse | 5648 | 50 |
| JUN-19 | Mouse | 5648 | 1000 |
| May-19 | Keyboard | 5646 | 20 |
| May-19 | Monitor | 5689 | 10 |
+-----------+------------------+-------------------+--------+
我还有另一个表Table#2;
+---------------+---------+----------+
| CREATION_DATE | ITEM_ID | ISSUE_NO |
+---------------+---------+----------+
| 02/May/19 | 5648 | A1 |
| 15/May/19 | 5648 | A4 |
| 23/Jun/19 | 5646 | A8 |
+---------------+---------+----------+
END RESULT
我想将我创建的表(表#1)外部连接到表#2中。决赛桌的结果将与下面类似;
+---------------+-----------------+-----------+------------------+-------------------+--------+----------+
| CREATION_DATE | CREATION_DATE#2 | DMT_MONTH | PRODUCT_CATEGORY | INVENTORY_ITEM_ID | OUTPUT | ISSUE_NO |
+---------------+-----------------+-----------+------------------+-------------------+--------+----------+
| 02/May/19 | May-19 | May-19 | Mouse | 5648 | 50 | A1 |
| 15/May/19 | May-19 | May-19 | Mouse | 5648 | 50 | A4 |
| 23/Jun/19 | Jun-19 | Jun-19 | Keyboard | 5646 | 20 | A8 |
| | | Jun-19 | Mouse | 5648 | 50 | |
| | | May-19 | Monitor | 5689 | 10 | |
+---------------+-----------------+-----------+------------------+-------------------+--------+----------+
我曾尝试过的如此之遥
请原谅下面代码的格式
Select d.CREATION_DATE,
TO_CHAR(d.CREATION_DATE, 'MON-YY'),
d.RES_INCIDENT_NUMBER ,
d.ITEM_ID
From RAPIDVIEW.NCP_INCIDENT d
FULL OUTER JOIN (
SELECT a.DMT_MONTH, a.PRODUCT_CATEGORY, a.INVENTORY_ITEM_ID, SUM(a.OUTPUT)
FROM OUTPUT_TABLE a
INNER JOIN CATEGORY b
ON a.INVENTORY_ITEM_ID = b.INVENTORY_ITEM_ID
AND b.CATEGORY_SET_NAME = 'INVENTORY'
GROUP BY a.DMT_MONTH, a.INVENTORY_ITEM_ID, a.PRODUCT_CATEGORY
) c
ON (c.DMT_MONTH = d.TO_CHAR(CREATION_DATE, 'MON-YY')) AND (c.INVENTORY_ITEM_ID = d.ITEM_ID);
要在CREATION_DATE加入DMT_MONTH,我尝试创建一个额外的列TO_CHAR(CREATION_DATE,'MON-YY')以允许我将它们加入在一起。不幸的是,我一直在下面收到此错误;
ORA-00904: "D"."TO_CHAR": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 77 Column: 19
任何建议都将不胜感激。我将使用tableau中的最终输出进行分析。
答案 0 :(得分:0)
设法了解我在做什么错。外部联接的日期格式不正确。请参见下面的代码;
ON (c.DMT_MONTH = d.TO_CHAR(CREATION_DATE, 'Mon-YY')) AND (c.INVENTORY_ITEM_ID = d.ITEM_ID);