2016-07-23 37 views
-1

使用下面 表![架構]子查詢使用其中

它也可以配合外很容易地更換JOIN每當需要時。

WHERE語法更面向關係模型。

JOIN'ed兩個表的結果是應用過濾器的表的笛卡爾積,該過濾器僅應用於選擇連接列匹配的行。

用WHERE語法來看這很容易。

SELECT DISTINCT E_Fname, E_Lname 
FROM EMPLOYEE E 
WHERE E_id in (
    SELECT E_id 
    FROM EMPLOYEE E, STORE S 
    WHERE E.E_id = S.Store_Manager_id 
    AND UPPER(STORE_SUBURB) = ‘ARMONK’ 
    AND Store_id in (
     SELECT toy_id 
     FROM TOY T, STORE S 
     WHERE T.toy_id = S.Store_id 
) 
) 

我不知道這是否正確,我如何增加最低租金收入。

回答

-1

這是我的猜測,但我現在要建立表格來確認它的工作原理。

SELECT DISTINCT store_id, E_Fname, E_Lname 
FROM EMPLOYEE E, Store 
WHERE E.E_id in(

    SELECT E_id 
    FROM EMPLOYEE E, STORE S 
    WHERE E.E_id = S.Store_Managerid 
    AND UPPER(S.STORE_SUBURB) = 'ARMONK' 
    AND S.Store_id in(

     SELECT store_id 
      FROM TOY T, STORE S 
      WHERE T.toy_id = S.Store_id 
      AND min(hire_price) 
    ) 
) 
0

我會不惜一切接近它不where條款:

SELECT SUM(hireTransactionValue) as hireIncome, Store_ID, E_Lname, E_Fname 
FROM (
    SELECT Quantity * Hire_price as hireTransactionValue, Store_ID 
    FROM HireTransaction 
    JOIN Toy ON HireTransaction.Toy_id = Toy.Toy_id 
) TransactionValues 
JOIN Store ON Store.Store_id = TransactionValues.Store_ID 
JOIN Employee ON store_ManagerID = E_id 
GROUP BY Store_ID, E_Lname, E_Fname 
ORDER BY hireIncome 

說明: 我們將需要一個子查詢的租賃交易量與僱工玩具率結合起來。所以我們從這個開始,我們關心的是交易價值和它發生的存儲。然後我們通過Store加入獲得經理Employee的記錄。然後我們按商店分組SUM所有這些交易值,並按總計的交易值進行排序。

(順便說一句:我很好奇什麼樣的玩具 - 像充氣玩具或重型機械?)

+0

這兩種玩具 – johnwalker