0

我有这个查询应该:

创建一个列表,在库存表中标识每个选项可用的颜色数量的不同项目

但我收到一条错误消息:

命令行错误:167 列:66 错误报告:SQL 错误:ORA-00904:“INV”。“ITEM_ID”:无效标识符 00904。00000 -“%s:无效标识符”

SELECT inv.inv_id, 
item1.item_id, 
(SELECT COUNT(*) 
FROM (SELECT DISTINCT i.color FROM inventory i WHERE i.item_id = inv.item_id))
FROM inventory inv 
INNER JOIN item item1 
ON item1.item_id = inv.item_id
GROUP BY inv.inv_id, item1.item_id;
4

1 回答 1

2

听起来你只是想要

SELECT inv.inv_id,
       item1.item_id,
       COUNT( distinct inv.color )
  FROM inventory inv
       JOIN item item1 ON (item1.item_id = inv.item_id)
 GROUP BY inv.inv_id, item1.item_id

似乎没有任何理由inventory在子查询中再次点击该表。

于 2012-11-28T17:29:45.927 回答