有没有一个很好的方法来获得总计 - 这个查询显示每天的子总数,但是如何在没有子查询或其他查询的情况下获得每个子总数的总计
还有比计算总和更好的东西吗?
SELECT loguser,logdate,logaction,logtime
FROM log WHERE loguser IN
('scott') AND logdate
BETWEEN '2011-06-01' AND '2011-06-15'
ORDER BY logdate DESC
COMPUTE SUM(logtime) BY logdate
SQL Server 2008 R2
答案 0 :(得分:3)
我不熟悉COMPUTE,因为你已经习惯了它,但是这个(或它的变体)应该适用于大多数SQL方言......
SELECT loguser,logdate,logaction,SUM(logtime)
FROM log WHERE loguser IN
('scott') AND logdate
BETWEEN '2011-06-01' AND '2011-06-15'
GROUP BY loguser,logdate,logaction WITH ROLLUP
ORDER BY logdate DESC
答案 1 :(得分:0)
获得总计的更好方法是使用前端......而不是查询。
答案 2 :(得分:0)
我认为你应该看看像Dems建议的那样使用ROLLUP而不是COMPUTE,但如果你想要的是返回3件事 - 1)每日日志时间数据,2)每日小计;然后,3)总计(小计的总数)然后我认为你需要UNION一个查询,它找到前两个查询,就像你查找总数的查询一样。