我有一個表S
包含供應商(S,SNAME,城市),一個表P
包含產品(P,PNAME,顏色,重量,價格)和一個表SP
包含交貨(S,P,QTY)其中S和P外鍵的表S和P.顯示交付最大交貨(嵌套查詢)的供應商名稱?
我被要求做的是
「顯示誰已經交付的最大輸送(如嵌套查詢)的供應商(S)的名稱。 「
我該如何去做這件事?
編輯:刪除了我聲稱的代碼段工作正常。不是。
我有一個表S
包含供應商(S,SNAME,城市),一個表P
包含產品(P,PNAME,顏色,重量,價格)和一個表SP
包含交貨(S,P,QTY)其中S和P外鍵的表S和P.顯示交付最大交貨(嵌套查詢)的供應商名稱?
我被要求做的是
「顯示誰已經交付的最大輸送(如嵌套查詢)的供應商(S)的名稱。 「
我該如何去做這件事?
編輯:刪除了我聲稱的代碼段工作正常。不是。
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
我找到了解決方案。我猜想太明顯了。我很難弄清楚使用什麼內部查詢。
SELECT SNAME FROM S, SP WHERE S.S = SP.S AND QTY = (SELECT MAX(QTY) FROM SP)
不是。您選擇單一產品的最大交貨金額,但您必須考慮您的供應商可以交付多種產品,在這種情況下,您必須彙總交貨金額。 – 2010-09-01 09:00:35
SP中的行都是單次交付,我認爲他們詢問了最大的單次交付。如果沒有,你是正確的:) – Challe 2010-09-01 09:27:09
這功課嗎?你使用什麼樣的數據庫?如果你沒有檢查你的外鍵列's',每個'SP'加入每個'S',你的當前查詢如何工作? – 2010-09-01 08:11:18