我正在为我的SQL查询课做作业,而且我被困在子查询上。我需要按仓库列出手头数量少于20件的物品数量。而且我只需要展示拥有多件物品且仓库少于20件的仓库。这就是我所拥有的:
select warehouse, on_hand, description
from part
where on_hand < 20 and
( select count(description)
from part
group by warehouse
)
order by warehouse;
我需要帮助的是子查询部分(如果我需要一个,子查询就是我所挣扎的)。我不一定想要一个直接的答案,但需要帮助,如提示和方向。
答案 0 :(得分:0)
好吧,既然你不希望有人为你完成所有工作,而你想使用子查询,你可以尝试以下方法:
select col1, total_items
from
( select col1,
sum(col2) as total_items
from part
group by col1
)
where total_items < 20 and total_items > 0
order by total_items;
请注意,您将子查询视为“表格”......
现在,使用HAVING子句:
select warehouse, count(description)
from part
where on_hand < 20
group by warehouse
having count(description) > 1
order by warehouse;
您可以详细了解此条款here。
答案 1 :(得分:0)
select warehouse, count(description)
from part
where on_hand < 20
group by warehouse
having count(description) > 1
order by warehouse;
这有用吗?问题是&#34;按仓库列出手头数量少于20件的物品数量。仅显示那些手头有少于20个项目的仓库。&#34;并且此输出使仓库2具有20项以下的2项,仓库3具有20项以下的2项。当我手动检查
时,它看起来是正确的select warehouse, count(description)
from part
where on_hand < 20