很可能,您现在已经找到了问题的答案。这适用于可能偶然发现这个问题的其他人。此解决方案仅在您SQL Server 2005 or above
用作报告的数据源时适用。该示例用于Common Table Expressions (CTE)
实现问题中提到的预期结果。下面提到的示例使用SSRS 2005
和SQL Server 2008 R2
数据库。支持 CTE SQL Server 2005 or above
。
分步过程:
创建一个名为dbo.TimeScaleData
并填充问题中提供的数据的表。请参阅屏幕截图# 1。SQL 脚本部分下提供了表的创建脚本。
创建一个 CTE,它将采用表中的最小和最大日期值, dbo.TimeScaleData
并生成给定范围之间每小时的所有时间值。然后OUTER APPLY
在 CTE 和 table 之间使用dbo.TimeScaleData
来获取数据。任何没有匹配记录的时间范围都将被分配值 0。请参阅屏幕截图 # 2。此查询将在 SSRS 报告中用于创建数据集。SSRS DataSet Query部分提供了查询。
屏幕截图 # 3显示 CTE 查询正在用于创建报表数据集。屏幕截图 # 4 - # 7显示了 Chart 控件如何配置为使用数据集。
屏幕截图# 8显示了针对 SQL Server 表中数据的报告输出。
希望有帮助。
SQL 脚本:
CREATE TABLE [dbo].[TimeScaleData](
[Id] [int] IDENTITY(1,1) NOT NULL,
[DateTimeValue] [datetime] NULL,
[PalletsProduced] [int] NULL,
CONSTRAINT [PK_TimeScaleData] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
GO
SSRS 数据集查询:
DECLARE @StartDateTime AS DATETIME;
DECLARE @EndDateTime AS DATETIME;
SELECT @StartDateTime = MIN(DateTimeValue)
, @EndDateTime = MAX(DateTimeValue)
FROM dbo.TimeScaleData;
WITH CTE(DateTimeRange) AS
(
SELECT @StartDateTime AS DateTimeRange
UNION ALL
SELECT DATEADD(HOUR, 1, DateTimeRange)
FROM CTE
WHERE DATEADD(HOUR, 1, DateTimeRange) <= @EndDateTime
)
SELECT CTE.DateTimeRange
, COALESCE(TSD.PalletsProduced, 0) AS PalletsProduced
FROM CTE
OUTER APPLY (
SELECT PalletsProduced
FROM dbo.TimeScaleData TSD
WHERE TSD.DateTimeValue = CTE.DateTimeRange
) TSD;
截图#1:

截图#2:

截图#3:

截图#4:

截图#5:

截图#6:

截图#7:

截图#8:
