Reporting services 以桶为单位的SSRS计算列

Reporting services 以桶为单位的SSRS计算列,reporting-services,reportbuilder,Reporting Services,Reportbuilder,我正在处理一个查询,我在Select语句中使用了DateDiff来创建三列,从而在查询中的两列之间创建了微小的差异。我现在需要做的是将这些DateDiff结果中的数据放入存储桶中,但我一直在思考如何完成这项工作 以下是我的Select语句中的计算: ,DATEDIFF (minute, ORD_MSG_MST.ORD_RCV_DTTM, PF_MST.ISSU_DTTM) AS 'Order_Issue' ,DATEDIFF (minute, ORD_MSG_MST.ORD_RCV_DTTM,

我正在处理一个查询,我在Select语句中使用了DateDiff来创建三列,从而在查询中的两列之间创建了微小的差异。我现在需要做的是将这些DateDiff结果中的数据放入存储桶中,但我一直在思考如何完成这项工作

以下是我的Select语句中的计算:

,DATEDIFF (minute, ORD_MSG_MST.ORD_RCV_DTTM, PF_MST.ISSU_DTTM) AS 'Order_Issue'
,DATEDIFF (minute, ORD_MSG_MST.ORD_RCV_DTTM, UNIT_HIST.OCCR_DTTM AS 'Order_XM'  
,DATEDIFF (minute, UNIT_HIST.OCCR_DTTM, PF_MST.ISSU_DTTM) AS 'XM_IS'
LEFT OUTER JOIN 
    SELECT 
        count(CASE WHEN 'Order_XM'>= 0 AND 'Order_XM' < 10 THEN 1 END) AS '0 - 10',
        count(CASE WHEN 'Order_XM'>= 11 AND 'Order_XM' < 20 THEN 1 END) AS '11 - 20',
        count(CASE WHEN 'Order_XM'>= 21 AND 'Order_XM' < 30 THEN 1 END) AS '21 - 30',
        count(CASE WHEN 'Order_XM'>= 31 AND 'Order_XM' < 40 THEN 1 END) AS '31 - 40',
FROM ____) )
我将尝试将其作为子查询添加到FROM语句中:

,DATEDIFF (minute, ORD_MSG_MST.ORD_RCV_DTTM, PF_MST.ISSU_DTTM) AS 'Order_Issue'
,DATEDIFF (minute, ORD_MSG_MST.ORD_RCV_DTTM, UNIT_HIST.OCCR_DTTM AS 'Order_XM'  
,DATEDIFF (minute, UNIT_HIST.OCCR_DTTM, PF_MST.ISSU_DTTM) AS 'XM_IS'
LEFT OUTER JOIN 
    SELECT 
        count(CASE WHEN 'Order_XM'>= 0 AND 'Order_XM' < 10 THEN 1 END) AS '0 - 10',
        count(CASE WHEN 'Order_XM'>= 11 AND 'Order_XM' < 20 THEN 1 END) AS '11 - 20',
        count(CASE WHEN 'Order_XM'>= 21 AND 'Order_XM' < 30 THEN 1 END) AS '21 - 30',
        count(CASE WHEN 'Order_XM'>= 31 AND 'Order_XM' < 40 THEN 1 END) AS '31 - 40',
FROM ____) )
但我不知道我需要在FROM声明中放入什么表格。我不确定这样做是否正确

您有没有想过如何将查询中的计算列放入同一查询中的存储桶中,以便我可以在报表生成器中创建直方图

我在这方面做了很多搜索,没有找到任何这些是已经计算过的值的地方。
TIA

您可以使用计算出的DateDiff列进行初始查询,并将其用作子查询-这将允许您有一个执行bucketing的主查询

您没有发布大部分SQL,因此很难显示完全相关的示例。因此,我将使用MS中的Northwind示例数据库来展示一个示例,该示例应该足够容易理解并修复您自己的查询

Northwind有一个Orders表,其中有两个DATETIME列:RequiredDate和ShippedDate。我的子查询计算DateDiff,在这两列之间用天而不是分钟表示,并将其称为Diff。然后,主查询计算覆盖值范围的三个存储桶中每个存储桶的计数

SELECT 
    COUNT(CASE WHEN Diff >= -50 AND Diff < -25 THEN 1 END) AS '-50 through -25',
    COUNT(CASE WHEN Diff >= -25 AND Diff < 0 THEN 1 END) AS '-25 thorugh 0',
    COUNT(CASE WHEN Diff >= 1 AND Diff < 25 THEN 1 END) AS '0 thorugh 25'
FROM
    (
        SELECT DATEDIFF(day, RequiredDate, ShippedDate) AS 'Diff'
        FROM [Northwind].[dbo].[Orders]
    ) a
使用这个示例,我认为您应该能够对自己的查询进行类似的更改,以获得所需的结果