2011-05-20 69 views
1
SELECT 
    siteapplications.Application, Count(visits.VisitId) AS CountOfVisitId 
FROM 
    visits, 
    siteapplications 
WHERE 
    visits.SiteApplicationId=siteapplications.ApplicationID 
    and Month([visits.VisitTime])= month and Year([visits.VisitTime])= year 
GROUP BY 
    siteapplications.Application 
ORDER BY 
    CountOfVisitId DESC; 

也許一個愚蠢的問題,但與我運行此查詢時,我需要填寫月份,年份和CountOfVisitId?爲什麼我必須填寫此參數值

但CountOfVisitId我需要它來計算(因此查詢)

我沒有與查詢的很多經驗,但我需要這一個用Java

誰能解釋或解決...

+0

在您的訪問表中是否存在「VisitId」字段?您的數據庫是否對字段/表名稱敏感?通常,提示填寫字段值意味着您放入查詢中的表/字段名稱不存在於數據庫中。 – 2011-05-20 20:17:19

+0

是的,有一個這個名字的字段,它的名字和VisitId是一樣的......我自己選了這個,但是thx無論如何 – 2011-05-20 20:20:27

+0

@John:是的,完成了。 – 2011-05-20 20:39:28

回答

1

通常,根據您的品牌和SQL版本,您無法按列別名進行分組,也不能按列別名進行排序。所以你可以試試ORDER BY 2 DESC

+0

現在工作沒有問題的參數...秩序似乎一見鍾情。 Thx .. – 2011-05-20 20:57:40

1

正如@MJB提到的那樣,通常不能按列別名進行排序。試試這個(注意更改爲ORDER BY):

SELECT 
    siteapplications.Application, Count(visits.VisitId) AS CountOfVisitId 
FROM 
    visits, 
    siteapplications 
WHERE 
    visits.SiteApplicationId=siteapplications.ApplicationID 
    and Month([visits.VisitTime])= month and Year([visits.VisitTime])= year 
GROUP BY 
    siteapplications.Application 
ORDER BY 
    Count(visits.VisitId) DESC; 
+0

很高興知道...我不會使用查詢的我自己!謝謝 – 2011-05-20 20:59:34

相關問題