Sql 每月SSRS报告,3列计数

Sql 每月SSRS报告,3列计数,sql,sql-server,reporting-services,Sql,Sql Server,Reporting Services,我正在编写SSRS报告,其中我有3个日期要处理,并从9月份开始每月计算每个列的数量。这是我试图实现的一个图像,我不确定我在分组中到底遗漏了什么。任何帮助都将不胜感激。 查询- 选择CONVERT(NVARCHAR(10),TableA.DueDate,101)作为DueDate, 将(NVARCHAR(10),表B.DateFrom,101)转换为DateFrom, 将(NVARCHAR(10),TableB.DateTo,101)转换为DateTo 来自dbo.TableA dbo.Table

我正在编写SSRS报告,其中我有3个日期要处理,并从9月份开始每月计算每个列的数量。这是我试图实现的一个图像,我不确定我在分组中到底遗漏了什么。任何帮助都将不胜感激。 查询-

选择CONVERT(NVARCHAR(10),TableA.DueDate,101)作为DueDate,
将(NVARCHAR(10),表B.DateFrom,101)转换为DateFrom,
将(NVARCHAR(10),TableB.DateTo,101)转换为DateTo
来自dbo.TableA
dbo.TableA.Id=dbo.TableB.TableAid上的内部联接dbo.TableB
其中(表A.2015-08-01之间的截止日期)
以及‘2016-07-30’)
和(表B>=“08/01/2013”)

(TableB这有点难看,但会得到预期的结果——只需将查询粘贴到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小提琴-

Ankit Khetan,
在报告布局中显示的是SSRS矩阵格式(如excel)。查看这是否对您有效,而不是使用另一个查询。…在Select语句中提取每个日期变量的月数。然后尝试将这些数字用作列。并将日期变量用作矩阵布局中的行。

Emm…您在查询中缺少数量列?不,实际上是您在C中看到的数字Column Sep(16,18,9)是属于9月份的行数。因此应该进行分组。现在,如果您使用任何一个(截止日期开始、实际开始、完成)进行分组,那么这三个月份的结果都是相同的。有没有办法在所有其他月份获得col1=Sept、Col2=16、Col3=18、Col4=9等4列。SQL Server的版本是什么?
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