2016-07-24 129 views
2

我很努力讓我的功能顯示的是超過「零售」價格兩倍的物品。我目前的代碼是;(x * 2)> y SQL顯示語句

SELECT DISTINCT C.COMPANY_NAME, S.STORE_ADDRESS, 
    I.ITEM_ID, I.ITEM_NAME, I.COST, I.RETAIL, I.MAKER 
    FROM COMPANY C, INVENTORY I, STORE S 
    WHERE(
    I.COST > I.RETAIL * 2 
    GROUP BY ITEM_ID 
); 

我的變量都是數字。我得到與I.COST行缺少右paranthesis錯誤> I.RETAIL * 2

+0

'WHERE('應該是'WHERE',但你還需要通過刪除的組 –

+0

@Zohar真實的,但還需要加入表 –

+0

@ShadowWizard正確的,我可以」相信我錯過了... –

回答

3

你不必聚合功能,這樣你就不會被

SELECT DISTINCT C.COMPANY_NAME, S.STORE_ADDRESS, 
I.ITEM_ID, I.ITEM_NAME, I.COST, I.RETAIL, I.MAKER 
FROM COMPANY C, INVENTORY I, STORE S 
WHERE I.COST > (I.RETAIL * 2); 

需要組要小心,你的表之間不關聯條件

+0

感謝您的幫助 – Matt

+0

@Matt如果我的回答是正確的,請將它標記爲已接受 – scaisEdge

+0

對不起之前無法做到,因爲它仍然有計時器 – Matt

1

你的不同意味着你已經通過參與..try這個對象分組..

SELECT DISTINCT C.COMPANY_NAME, S.STORE_ADDRESS, 
    I.ITEM_ID, I.ITEM_NAME, I.COST, I.RETAIL, I.MAKER 
    FROM COMPANY C, INVENTORY I, STORE S 
    WHERE 
    I.COST > I.RETAIL * 2 
0

只需將I.RETAIL * 2放在括號內。即(I.RETAIL * 2) 希望它有幫助。

0

你必須加入表格,並且在那裏必須有一個交叉引用表。喜歡的東西:。

SELECT C.COMPANY_NAME, S.STORE_ADDRESS, 
I.ITEM_ID, I.ITEM_NAME, I.COST, I.RETAIL, I.MAKER 
FROM COMPANY C 
JOIN INVENTORY I 
ON C.CompanyID = I.MAKERID 
JOIN xrefStoreInventory SI 
ON SI.ItemID = I.ItemID 
JOIN STORE S 
ON S.StoreID = SI.StoreID 
WHERE I.COST > (I.RETAIL * 2);