2016-03-21 7 views
0

Ich bin in einer kleinen Bindung - Ich möchte eine gespeicherte Prozedur machen, die die Anzahl der verkauften Artikel anzeigt und sie von den meisten zu den wenigsten bestellt. Die relevanten Daten stammen aus zwei verschiedenen Tabellen:SQLPlus - Gespeicherte Prozedur, die die Anzahl der verkauften Artikel in absteigender Reihenfolge anzeigt

ITEMS | itemid | itemname 
SALES | itemdid 

ich die itemid und Zählung der einzelnen Elemente mit dieser Abfrage verkauft anzeigen kann:

SELECT * FROM (
SELECT ITEMID, 
COUNT (ITEMID) AS COUNTOF 
FROM SALES GROUP BY ITEMID 
ORDER BY COUNTOF DESC); 

ich die itemname jedes Element mit diesem verkauft anzeigen kann :

SELECT ITEMS.ITEMNAME 
FROM ITEMS 
JOIN SALES 
    ON SALES.ITEMID = ITEMS.ITEMID; 

Allerdings kann ich scheinen die itemname angezeigt werden neben der Zählung der Artikel verkauft nicht zu bekommen. Ich kämpfe wirklich damit. Danke

Antwort

0

Was Sie suchen, ist ein JOIN oder INNER JOIN.

SELECT s.ITEMID,i.ITEMNAME, COUNT (s.ITEMID) AS COUNTOF FROM SALES AS s 
INNER JOIN ITEMS AS i ON i.itemid=s.itemid 
GROUP BY s.ITEMID,i.ITEMNAME 
ORDER BY COUNTOF DESC 
Verwandte Themen