Reputation: 309
Does anyone have an idea about how to structure the following query:
Tables :
TBL_GAME id, name
TBL_CATEGORY id, name
LU_GAME_TO_CATEGORY gameid, catid
LU_GAME_TO_EVENT eventid, gameid
So, basically Categories
have many games.
Events
have many games.
I want to generate a report that shows the Categories
listed by how many of its Games
were used in Events
. Ordered by the amount descending.
Is this possible ?
Upvotes: 0
Views: 91
Reputation: 28990
SELECT A.ID, SUM(D.INT_QUANTITY) AS YourSum
FROM TBL_CATEGORY A --Adapt your selected columns
INNER JOIN LU_GAME_TO_CATEGORY B ON A.id = B.catid
INNER JOIN TBL_CATEGORY C ON B.gameid = C.id
INNER JOIN LU_GAME_TO_EVENT D ON C.gameid = D.gameid
GROUP BY A.ID
ORDER BY YourSum DESC;
Here i don't adjust amount, because columns does not exist. You must add Amount column in target table
Upvotes: 1
Reputation: 9158
SELECT
c.id as catId,
c.name as catName,
g.id as gameId,
g.name as gameName,
sum(ge.INT_QUANTITY) as totalQuantities
FROM
TBL_CATEGORY as c,
TBL_GAME as g,
LU_GAME_TO_CATEGORY as gc,
LU_GAME_TO_EVENT as ge
WHERE
c.id = gc.catId AND
g.id = gc.gameId AND
g.id = ge.gameId
GROUP BY
c.id,
g.id
ORDER BY
totalQuantities desc,
c.name,
g.name
Upvotes: 2