我正在制作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' )
答案 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变量作为矩阵布局中的行。