【发布时间】:2023-03-18 10:00:01
【问题描述】:
在我的 SSRS 报告中有 4 个参数 StartDate、EndDate、MeterId 和 DisplayBy
开始日期:日期时间数据类型 EndDate :日期时间数据类型 MeterId :是一个下拉列表,它将根据 SQL 查询填充 DisplayBy: 是一个下拉列表,它具有以下值(小时、日、月和年)
存储 Meters 每小时值的数据库,以下是 DB 表列:(MeterId,ReadingDate,Hours,Quantity,Price)
当我选择开始日期、结束日期和仪表 ID 并显示时,我想根据开始日期和结束日期显示报告,然后按显示值显示。
如果显示是小时,我们将显示该日期范围内 MeterId、Quantity、Price 的所有 24 小时值。
如果显示的是天,我们会显示该日期范围内 MeterId 的总数量和总价格。
如果显示为月,我们将显示该日期范围内 MeterId 的总数量和总价格。
如果显示为年份,我们将显示该日期范围内 MeterId 的总数量和总价格。例如,如果我选择开始日期为 1-1-2016,结束日期为 12-31-2016。我的结果应该显示每个月的 12 行,其中包含该特定 MeterID 的总数量和总价。
如果用户选择显示下拉菜单作为小时,我的数据库表存储我知道如何在屏幕上显示值的所有小时值。但是,不知道如何显示日/月/年的结果或如何对其进行分组。我需要使用“case”语句吗?如果需要,我应该在显示参数上给出什么。
请提出你的想法...
SELECT I.CustomerName, I.ReadingDate, I.IntegratedHour, I.IntegratedUsage, I.IntegratedGeneration, DATEPART(dd, I.ReadingDate) AS [Reading Day], DATEPART(mm,
I.ReadingDate) AS [Reading Month], DATEPART(yyyy, I.ReadingDate) AS [Reading Year]
FROM IntegratedHour_MV90 AS I INNER JOIN
CustRptMeterExtract AS CT ON CT.CustomerName = I.CustomerName
WHERE (I.ReadingDate >= @StartDate) AND (I.ReadingDate <= @EndDate) AND (I.CustomerName IN (@FacilityName))
【问题讨论】:
-
我建议您告诉我们您的具体问题是什么。目前,您只是在描述您的项目,没有提出任何问题。
-
对不起,因为我的数据库表存储了所有小时值,如果用户选择显示下拉菜单作为小时,我知道如何在屏幕上显示这些值。但是,不知道如何显示日/月/年的结果。我需要使用“case”语句吗?如果需要,我应该在显示参数上给出什么。有点困惑。
标签: sql sql-server tsql reporting-services