Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 如何在SSRS矩阵报告中包含数据集中未包含的行值_Reporting Services - Fatal编程技术网

Reporting services 如何在SSRS矩阵报告中包含数据集中未包含的行值

Reporting services 如何在SSRS矩阵报告中包含数据集中未包含的行值,reporting-services,Reporting Services,在我的SSRS矩阵报告中,我有两列,评估公司和日期,该日期列中有计数。在提取日期的数据集中,我有时没有包括所有评估公司。我有5家评估公司。用户希望为评估公司包含一行,该行不属于数据的一部分。以下是我的数据集返回的内容: 这就是我想要的样子: 您会注意到在“评估公司”列中有一个新的行,其中IA的值为IA,日期列中的值为0。我可以在SSRS矩阵中使用表达式实现这一点吗 如果有人在这里提出建议,下面是我的SQL代码: DECLARE @ActivityBeginDate date = '2019-

在我的SSRS矩阵报告中,我有两列,评估公司和日期,该日期列中有计数。在提取日期的数据集中,我有时没有包括所有评估公司。我有5家评估公司。用户希望为评估公司包含一行,该行不属于数据的一部分。以下是我的数据集返回的内容:

这就是我想要的样子:

您会注意到在“评估公司”列中有一个新的行,其中IA的值为IA,日期列中的值为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能够帮助我实现这一点。希望这有意义,谢谢

如我之前的评论所述:

您可能希望将公司作为查询的起点,并在日期加入,这样,无论是否有数据可供加入,您都可以保留所有5个公司名称

下面的例子

SELECT ...
FROM CompaniesData
LEFT JOIN DatesStuff...
LEFT JOIN DataValuesStuff...

您可能希望将公司作为查询的起点,并在日期加入,这样您就可以保留所有5个公司名称,无论是否有数据可以继续加入。谢谢,Arahman,如果您不介意的话,我正在添加上面的SQL代码。感谢您的时间和帮助。谢谢。你好,阿拉曼,由于你的投入,我终于解决了这个问题。再次感谢你的帮助,不客气。我已将解决方案添加为答案,以便将其标记为已接受并已回答问题@梅林达