我有一个存储文档信息(DocID,名称,类型,所有者等)的数据库表。然后我有另一个表格来存储文档被下载的时间(DocID,DownloadTime等)。我正在设置一个页面,用于记录不同种类的文档(策略,表单,出版物等)在特定的月份和年份中获得的点击次数(我为每个用户选择了一个下拉列表)。例如,我也希望能够将月份或年份留空,因此用户可以在一年内获得所有月份的点击次数。下面的查询在用户选择月份和年份时正常工作。但是,如果将月份或年份留空,则gridview不会显示分组的文档类型。例如,如果我想看看命中为2010年1月,我得到:不按日期分组?
Policies : 210 hits
Forms: 98 hits
等
但是,当用户选择所有月份到2010年,用户将获得:
Policies: 210 hits
Policies: 87 hits
Policies: 23 hits
Policies: 87 hits
Forms
等
所以我得到了不同行的所有月份,但没有分组为一种。查询错在哪里?
SELECT COUNT(Counter.DocID) AS Counter,
Doc.DocType,
MONTH(Counter.DownloadDate) AS MonthDownload,
YEAR(Counter.DownloadDate) AS YearDownload
FROM Counter
INNER JOIN Doc ON Counter.DocID = Doc.DocID
GROUP BY Doc.DocType,
MONTH(Counter.DownloadDate),
YEAR(Counter.DownloadDate)
HAVING (MONTH(Counter.DownloadDate) = @Month1 OR @Month1 IS NULL) AND
(YEAR(Counter.DownloadDate) = @Year1 OR @Year1 IS NULL)
4秒打我! – 2010-06-22 14:53:11
不应该花你的时间编辑这个问题:P – 2010-06-22 14:53:52
嗯,你比我能说的更快,谢谢你。 – netNewbi3 2010-06-22 15:04:10