2012-08-26 174 views
0

有誰有關於如何構建以下查詢一個想法:複雜的SQL查詢

表:

TBL_GAME     id,  name 
TBL_CATEGORY    id,  name 
LU_GAME_TO_CATEGORY  gameid, catid 
LU_GAME_TO_EVENT   eventid, gameid 

所以,基本上Categories有很多場比賽。

Events有很多遊戲。

我想生成一份報告,顯示所列的GamesEvents中的使用數量。按降序排列。

這可能嗎?

+0

嗯,我有工作,當我通過遊戲表現出來:SELECT g.TXT_NAME姓名,e.INT_GAME_ID爲ID,SUM(e.INT_QUANTITY)作爲共有來自LU_GAME_TO_EVENT e,TBL_GAME g其中g.INT_ID = e.INT_GAME_ID GROUP BY e.INT_GAME_ID ORDER BY total DESC – Spunog

+0

所以我需要類似的地方,所有屬於一個類別的遊戲加在一起,並顯示在類別標題 – Spunog

回答

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

在這裏我不調整金額,因爲列不存在。 您必須在目標表中添加量列

+0

下表LU_GAME_TO_EVENT有一個列INT_QUANTITY。所以我想爲每個類別添加。感謝您的幫助。 – Spunog

+0

關於如何調整此查詢以提供每個類別的總計的任何想法?目前上面的查詢是爲每個遊戲/訂單返回一行 – Spunog

+0

我添加了代碼Spunog –

2
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