【发布时间】:2011-06-08 03:58:56
【问题描述】:
我正在使用 Crystal Reports XI Developer 编写报表,该报表在 SQL Server 2005 数据库中运行存储过程。记录集从按日和小时分组的日志表中返回摘要。
目前我的查询看起来像这样:
SELECT
sum(colA) as "Total 1",
day(convert(smalldatetime, convert(float, Timestamp) / 1440 - 1)) as "Date",
datepart(hh, convert(smalldatetime, convert(float, Timestamp) / 1440 - 1)) as "Hour"
`etc...`
GROUP BY
Day, Hour
忽略日期的疯狂,我认为系统设计者在研究如何存储日期时喝得酩酊大醉。
我的问题是:由于一天中的每个小时并不总是有记录,所以我最终会出现空白,这是可以理解的,但我希望 Crystal 能够报告整个 24 小时,而不管有没有数据。
我知道我可以通过将整个查询放入 WHILE 循环中(在存储过程中)并在各个时间进行查询来改变这一点,但我内心的某些东西说一个查询优于 24 个。
我想知道是否有办法让 Crystal 在一天中的几个小时内迭代,而不是像往常那样迭代表中的行。
或者,有没有办法格式化查询,使其包含空的小时行而不杀死我的数据库服务器?
【问题讨论】:
标签: sql-server stored-procedures crystal-reports crystal-reports-xi