外部连接错误-连接日期和日期

问题描述 投票:1回答:1

我使用下面的代码创建表#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 |
+-----------+------------------+-------------------+--------+

我还有另一个表,表#2;

+---------------+---------+----------+
| CREATION_DATE | ITEM_ID | ISSUE_NO |
+---------------+---------+----------+
| 02/May/19     |    5648 | A1       |
| 15/May/19     |    5648 | A4       |
| 23/Jun/19     |    5646 | A8       |
+---------------+---------+----------+

END RESULT

我想将我创建的表(Table#1)外部连接到Table#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中的最终输出进行分析。

sql oracle
1个回答
0
投票
ON (c.DMT_MONTH = d.TO_CHAR(CREATION_DATE, 'Mon-YY')) AND (c.INVENTORY_ITEM_ID = d.ITEM_ID);
© www.soinside.com 2019 - 2024. All rights reserved.