分组依据 - SQL Oracle 错误:无效项目
Posted
技术标签:
【中文标题】分组依据 - SQL Oracle 错误:无效项目【英文标题】:Group By - SQL Oracle Error: Invalid Item 【发布时间】:2021-10-15 04:30:26 【问题描述】:尝试按 ITEM 进行分组,但我似乎无法正常工作,ORA-00904:“ITEM”:标识符无效。这是我迄今为止尝试过的:
SELECT sum(quantity) AS SUPPLY, TRIM((SELECT ITEM_ID FROM INVENTORY_ITEM WHERE INVENTORY_ITEM_KEY = INVENTORY_SUPPLY.INVENTORY_ITEM_KEY)) AS ITEM FROM INVENTORY_SUPPLY
WHERE SUPPLY_TYPE = 'ONHAND' AND SHIPNODE_KEY IN ('LDC', 'LDC-WEB', 'LDC-SOS') GROUP BY ITEM;
INVENTORY_SUPPLY 表中的每个 ITEM 可以有多个条目(由 INVENTORY_ITEM_KEY 匹配),我需要将这些数量汇总到一行中。
【问题讨论】:
请提供样本数据、期望的结果,并解释您想要做什么。非工作查询不会(必然)提供此信息。 INVENTORY_SUPPLY 表包含每个 INVENTORY_ITEM_KEY 的条目以及各种 SHIPNODE_KEYS 的现有数量。我在上面的查询中只过滤了我想要的 SHIPNODE_KEYS,但这会为每个 INVENTORY_KEY 留下 3 个条目,因为它们有不同的 SHIPNODE_KEYS。我正在使用 INVENTORY_KEY 从不同的表中获取相应的项目,因为这对阅读更友好。但是由于无法按项目求和数量,我在表中看到每个项目的 3 个条目,我需要将这些总和为 1 个条目。有帮助吗 我相信@GordonLinoff 试图让你这样做:***.com/help/minimal-reproducible-example 【参考方案1】:根据我的理解,可能您将不得不内连接 2 个表而不是标量子查询,因为 group by 在 select 子句之前首先执行。因此它无法识别 ITEM。
select sum(quantity) AS SUPPLY,
ITEM_ID as ITEM
FROM INVENTORY_SUPPLY join INVENTORY_ITEM
on INVENTORY_ITEM.INVENTORY_ITEM_KEY = INVENTORY_SUPPLY.INVENTORY_ITEM_KEY
WHERE SUPPLY_TYPE = 'ONHAND'
AND SHIPNODE_KEY IN ('LDC', 'LDC-WEB', 'LDC-SOS')
GROUP BY INVENTORY_ITEM.ITEM_ID;
【讨论】:
效果很好,很抱歉没能很好地解释我的问题,但你提供了一些对我有用的东西! 那你为什么不接受这个答案呢,@AWooster?以上是关于分组依据 - SQL Oracle 错误:无效项目的主要内容,如果未能解决你的问题,请参考以下文章