2016-07-24 127 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);