簡體   English   中英

在Access中需要有關SQL查詢的幫助

[英]Need Help with SQL Query in Access

我已經交給一個數據庫來運行一些查詢。

對於一個查詢,我必須從具有數百條記錄的兩個不同表中找到前10個應用程序。 然后在第(11)行中,我需要對剩余記錄求和或計數,並將行命名為“其他”。

到目前為止,我已經制定了以下代碼。

SELECT TOP 10 ApplicationTbl.AppName, Count(*) AS SessionNos
FROM ApplicationTbl INNER JOIN SessionTbl ON ApplicationTbl.AppID = SessionTbl.AppID
GROUP BY ApplicationTbl.AppName;
ORDER BY Count(*) DESC; 

顯示了10條最重要的記錄,但是我知道需要將剩余的SessionNos總計到第11行,並將AppName重命名為“ Other”

任何人都可以幫忙,或推薦任何東西。

僅供參考:我使用的是SQL View內置的Access 2007,我知道可以完成的操作是有限的。

我對SQL不太好,它對我來說是新的。

謝謝 :)

您需要的是
1)上面獲得前10名的查詢,稱為Top10Apps。
2)第二個查詢,該查詢從上面的相同表中選擇,但其中行不在Top10Apps中,並對行求和/返回帶有“ Other”標記的總和與集結。 將此稱為SumOfNotTop10Apps
3)第三個查詢結合了Top10App和SumOfNotTop10Apps

如果還不清楚,請發表一些評論,我會盡力使其更清楚。

SELECT TOP 10 ApplicationTbl.AppName, Count(*) AS SessionNos
FROM ApplicationTbl 
INNER JOIN SessionTbl 
ON ApplicationTbl.AppID = SessionTbl.AppID
GROUP BY ApplicationTbl.AppName
ORDER BY Count(*) DESC

UNION ALL

SELECT "Other" AS AppName, Count(*) AS SessionNos
FROM (ApplicationTbl 
INNER JOIN SessionTbl 
ON ApplicationTbl.AppID = SessionTbl.AppID) 
LEFT JOIN (SELECT TOP 10 ApplicationTbl.AppName, Count(*) AS SessionNos
           FROM ApplicationTbl 
           INNER JOIN SessionTbl 
           ON ApplicationTbl.AppID = SessionTbl.AppID
           GROUP BY ApplicationTbl.AppName;
           ORDER BY Count(*) DESC)  AS s 
ON ApplicationTbl.AppName = s.AppName
WHERE s.AppName Is Null
GROUP BY "Other"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM