2013-01-17 40 views
0

我需要幫助編寫下面所述問題的SQL查詢。我假設我必須使用部門,但我不知道如何去做。如何在此示例中使用division編寫SQL查詢?

假設以下關係:S(供應商),SP(適用於運送)和P(零件) 由SQL編寫查詢回答下列問題:

)供應商提供從倫敦只有部分?

請注意,該問題僅需要倫敦的部件,並不是每個供應商都提供倫敦的部件。

S: 
S# SNAME CITY 
S7 Lowen Berlin 
S8 Jeter N.Y. 
S9 Kling Berlin 

SP: 
S# P# QTY 
S7 P2 300 
S7 P3 400 
S8 P2 300 
S9 P4 500 

P: 
P# NAME COLOR CITY 
P1 Bolt Blue Berlin 
P3 Nut Red Paris 
P2 Cog Red Rome 
P4 Screw Green Paris 
+2

這是作業!自己解決吧! –

+4

好吧,我不會像凱文那樣粗魯,但你至少應該展示你的嘗試,以及你在哪裏遇到問題。提示:GROUP BY和HAVING COUNT(xxx)可能會成爲你的朋友。我沒有看到你可以在哪裏使用部門。 –

+0

@RaphaëlAlthaus此問題已被提問,因爲user1955754已經獲得了學校/學院/大學的任務,並且無法學習基本的SQL。 –

回答

0

很明顯,在您的示例中,只要倫敦沒有零件,就沒有這樣的供應商。 嘗試使用以下查詢:

SELECT S.S#,max(S.SNAME) from S 
LEFT JOIN SP on (S.S#=SP.S#) 
LEFT JOIN P on (SP.P# = P.P#) 
GROUP BY S.S# 
HAVING MAX(P.CITY)='London' and MIN(P.CITY)='London' 
+0

不錯。我喜歡min和max從倫敦獲得解決方案的解決方案,但不包括那些從其他地方獲得零件的解決方案。 –

+0

哦,我看到你在那裏做了什麼!謝謝! – user1955754