2016-07-24 12 views
2

Ich habe Mühe, meine Funktion zu erhalten, die Artikel anzuzeigen, die mehr als das Doppelte des 'Einzelhandelspreises' sind. Mein aktueller Code ist;(x * 2)> y SQL-Anzeigeanweisung

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 
); 

Meine Variablen sind alle Zahlen. Ich erhalte die fehlende rechte geklam- mert Fehler auf der Linie mit I.COST> I.RETAIL * 2.

+0

WHERE ('' sollte WHERE' sein, aber Sie müssen auch von der Gruppe entfernen –

+0

@Zohar wahr, sondern müssen auch die Tabellen verknüpfen –

+0

@ShadowWizard richtig, ich kann‘ Ich glaube, ich habe das verpasst ... –

Antwort

3

Sie haben keine Aggregationsfunktion, so dass Sie von

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); 

keine Gruppe brauchen Seien Sie vorsichtig, dass Sie nicht Beziehung Zustand zwischen den Tabellen

+0

Vielen Dank für Ihre Hilfe – Matt

+0

@Matt, wenn meine Antwort richtig ist, markieren Sie es als akzeptiert – scaisEdge

+0

Sorry konnte es vorher nicht tun, da es noch den Timer hatte – Matt

1

Ihr haben unterschiedliche bedeutet, dass Sie gruppieren bereits von den ..try diese beteiligten Objekte ..

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

Einfach das I.RETAIL * 2 in Klammern setzen. (i.RETAIL * 2) Ich hoffe, es hilft.

0

Sie müssen den Tabellen beitreten und dort muss irgendwo eine Querverweistabelle sein. Etwas wie:..

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);