我正在使用 Oracle SQL,我需要确保我的所有项目恰好位于 5 个特定位置。我面临的问题是我的物品仅位于 5 个位置中的少数几个,我需要找到我需要的丢失物品。
问题是数据库表有很多位置,但我只需要查找在 5 个特定位置中的任何一个中缺少该项目的记录,这 5 个特定位置是 Loc1、Loc2、Loc3、Loc4、Loc5
我使用的查询是:
WITH Sku (Loc) AS (SELECT 'loc1' FROM DUAL UNION ALL
SELECT 'loc2' FROM DUAL UNION ALL
SELECT 'loc3' FROM DUAL UNION ALL
SELECT 'loc4' FROM DUAL UNION ALL
SELECT 'loc5' FROM DUAL)
SELECT t.Item, l.Loc FROM Sku l
LEFT OUTER JOIN Sku t PARTITION BY (t.Item) ON (l.Loc = t.Loc)
WHERE t.Sku is NULL;
但我收到错误 - 缺少关键字
以下是我基于数据库想要实现的目标。感谢您的任何建议。
您正在从
Sku
中选择两次。更改查询以从包含您的数据的数据库中的表中进行选择。
WITH Sku (Loc) AS (
SELECT 'loc1' FROM DUAL UNION ALL
SELECT 'loc2' FROM DUAL UNION ALL
SELECT 'loc3' FROM DUAL UNION ALL
SELECT 'loc4' FROM DUAL UNION ALL
SELECT 'loc5' FROM DUAL
)
SELECT t.Item, l.Loc
FROM Sku l
LEFT OUTER JOIN table_name t
PARTITION BY (t.Item)
ON (l.Loc = t.Loc)
WHERE t.Sku is NULL;