每月SSRS报告,有3列计数

时间:2014-08-21 19:24:48

标签: sql sql-server reporting-services

我正在制作SSRS报告,我有3个日期要处理,并从9月开始每月获得每列的计数。这是我想要实现的目标的图像,我不确定在分组中我究竟缺少什么。任何帮助将非常感激。 查询 -

SELECT  CONVERT(NVARCHAR(10), TableA.DueDate, 101) AS DueDate ,
        CONVERT(NVARCHAR(10), TableB.DateFrom, 101) AS DateFrom ,
        CONVERT(NVARCHAR(10), TableB.DateTo, 101) AS DateTo
FROM    dbo.TableA
        INNER JOIN dbo.TableB ON dbo.TableA.Id = dbo.TableB.TableAid
WHERE   ( TableA.DueDate BETWEEN '2015-08-01'
                         AND     '2016-07-30' )
        AND ( TableB >= '08/01/2013' )
        AND ( TableB <= '07/30/2014' )

enter image description here

2 个答案:

答案 0 :(得分:1)

它有点难看但会得到预期的结果 - 只需将查询粘贴到CTE的定义中 -

WITH DateCTE AS (SELECT
        DueDate, DateFrom, DateTo FROM DateTable)

SELECT MONTH, SUM(DueDate), SUM(DateFROM), SUM(DateTo)
FROM (
  SELECT DateName(month,DueDate) MONTH, Count(*) AS DueDate, 0 DateFROM , 0 DateTo
  FROM DateCTE 
  GROUP BY DateName(month,DueDate)
  UNION
  SELECT DateName(month,DateFrom) MOntH, 0 AS DueDate, COUNT(*) DateFROM , 0 DateTo
  FROM DateCTE 
  GROUP BY DateName(month,DateFrom)
  UNION
  SELECT DateName(month,DateTo) Month, 0 AS DueDate, 0 DateFROM , COUNT(*)  Dateto
  FROM DateCTE 
  GROUP BY DateName(month,DateTo)) UnionTable
GROUP BY MONTH

继承SQL小提琴 - http://sqlfiddle.com/#!6/0a639/10

答案 1 :(得分:0)

Ankit Khetan, 您在报表布局中显示的内容是SSRS MATRIX格式(如excel)。看看这是否适用于您而不是使用另一个查询....在您的选择语句中提取每个日期变量的月份数。然后尝试将这些数字用作列。并使用Date变量作为矩阵布局中的行。