在我的SSRS MATRIX报告中,我有2列,“评估公司”和“该日期中有计数的日期”列。在我的提取日期数据集中,有时我没有包括所有的评估公司。我有5个评估公司。用户希望为评估公司包括一行,但该行不是数据的一部分。这是我的数据集返回的内容:
这就是我想要的样子:
您会在AppraisalCompany列中看到带有IA的NEW ROW,在Date列中看到的值为0。我可以使用表达式在SSRS矩阵中完成此操作吗?
如果有人在这里提出建议,这也是我的SQL代码:
DECLARE @ActivityBeginDate date = '2019-01-01';
DECLARE @ActivityEndDate date = '2019-01-22';
SELECT
CASE
WHEN MONTH(ca.SysDate) = 1 THEN 'Jan-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 2 THEN 'Feb-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 3 THEN 'Mar-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 4 THEN 'Apr-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 5 THEN 'May-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 6 THEN 'Jun-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 7 THEN 'Jul-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 8 THEN 'Aug-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 9 THEN 'Sep-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 10 THEN 'Oct-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 11 THEN 'Nov-'+RIGHT(YEAR(ca.SysDate),2)
WHEN MONTH(ca.SysDate) = 12 THEN 'Dec-'+RIGHT(YEAR(ca.SysDate),2)
END as SubmittedDate,
--cac.AppraisalCompanyID,
cac.AppraisalCompany
FROM dbo.CMS_AppraisalCompany cac
LEFT OUTER JOIN dbo.CMS_Appraisals ca
ON cac.AppraisalCompanyID = ca.AppraisalCompanyID
AND CAST(ca.SysDate as date) BETWEEN @ActivityBeginDate AND @ActivityEndDate
WHERE cac.AppraisalCompanyID IN (3, 9, 11, 12, 13)
AND ca.AppraisalStatusID = 115
GROUP BY ca.SysDate, cac.AppraisalCompany, cac.AppraisalCompanyID
ORDER BY cac.AppraisalCompany asc;
任何帮助/指导将不胜感激。我试图通过存储过程中的case语句来完成这项工作,但无济于事,我希望SSRS可以帮助我完成此任务。希望这有意义。谢谢。
答案 0 :(得分:1)
如我先前的评论中所述:
您希望将公司作为查询的起点并加入日期,以便无论是否有要加入的数据,都保留所有5个公司名称。
以下示例
SELECT ...
FROM CompaniesData
LEFT JOIN DatesStuff...
LEFT JOIN DataValuesStuff...