我有一个S
包含供应商(S,SNAME,CITY)的表,一个P
包含产品(P,PNAME,COLOUR,WEIGHT,PRICE)的表和一个SP
包含交付(S,P,QTY)的表,其中 S 和 P 是表的外键S和P。
我被要求做的是
“显示交付最多的供应商的名称(作为嵌套查询)。”
我该怎么做呢?
编辑:删除了我声称工作正常的代码。不是。
我有一个S
包含供应商(S,SNAME,CITY)的表,一个P
包含产品(P,PNAME,COLOUR,WEIGHT,PRICE)的表和一个SP
包含交付(S,P,QTY)的表,其中 S 和 P 是表的外键S和P。
我被要求做的是
“显示交付最多的供应商的名称(作为嵌套查询)。”
我该怎么做呢?
编辑:删除了我声称工作正常的代码。不是。
我找到了解决方案。我猜太明显了。我很难弄清楚要使用什么内部查询。
SELECT SNAME FROM S, SP WHERE S.S = SP.S AND QTY = (SELECT MAX(QTY) FROM SP)
select s.sname, sum(sp.qty)
from s,
sp,
(select max(qty) val
from (select sum(sp.qty) qty
from s, sp, p
where sp.p = p.p
and sp.s = s.s
group y s.sname)) max_q
where sp.s = s.s
group by s.sname
having sum(sp.qty) = max_q.val