2016-02-02 35 views
0

我想在我的SSRS报告中显示以下案例类型,即使它们具有空值。SSRS显示组即使在NULL时

Project FinanceWhole of MarketCustomBuild

SELECT Count(ct.CaseTypeDesc)AS Done, ct.CaseTypeDesc,ap.StatusDesc As [Mortgage Status],SUM(pm.ProcFeeExp + pm.ArrangementFee) As Total ,u.Fullname as Advisor 
FROM dbo.tbl_Profile AS p 
INNER JOIN dbo.tbl_Profile_Mortgage AS pm 
ON p.ID = pm.FK_ProfileID 
INNER JOIN dbo.tbl_AppStatus AS ap 
ON pm.MortgageStatus = ap.StatusID 
INNER JOIN dbo.tbl_CaseTypes AS ct 
ON p.CasetypeID = ct.CaseTypeID 
LEFT JOIN dbo.tbl_User AS u 
ON p.Advisor = u.UserID 
WHERE pm.MortgageStatus = 7 
AND ct.CaseTypeDesc IN ('Project Finance','Whole of Market','CustomBuild') 
AND p.Advisor IN (266,104,172,145,177,253,286,261,289,138) 
AND (
      pm.DatePassed  BETWEEN @Start AND @End 
     OR pm.DateCompleted  BETWEEN @Start AND @End 
     OR pm.DateOffered  BETWEEN @Start AND @End 
     ) 
GRoup By u.Fullname,ct.CaseTypeDesc,ap.StatusDesc 

当我运行该报告有可能是为Whole of Market 没有计数但是我仍然希望我到组报告Whole of Market并显示0

任何帮助,这将不胜感激。

+0

您的查询是否为'Whole of Market'返回null?我的意思是你的查询返回'CaseTypeDesc'列的'Project Finance'和'CustomBuild',但它不返回'Whole of Market',对吧? –

+0

嗨它会返回所有3个casetypes项目融资,整个市场,CustomBuild如果它有一个计数。例如它会显示custombuild 12,整个市场6. – RustyHamster

+0

我想说的是custombuild 12,整个市场6,项目融资0 – RustyHamster

回答

0

如果使用GROUP BY子句,则不会区分NULL值。我认为一个简单的解决方案是使用UNION ALL运算符来为不同的CaseTypeDesc添加行。

事情是这样的:

select count(CaseTypeDesc) ... 
from ... 
where CaseTypeDesc = 'Project Finance' 
UNION ALL 
select count(CaseTypeDesc)... 
from ... 
where CaseTypeDesc = 'Whole of Market' 
UNION ALL 
select count(CaseTypeDesc)... 
from ... 
where CaseTypeDesc = 'CustomBuild' 

它会给你市场整体计数为零,即使它不会出现在您的查询。

这应该是您的查询。

SELECT Count(ct.CaseTypeDesc)AS Done, 'Project Finance' CaseTypeDesc,ap.StatusDesc As [Mortgage Status], 
SUM(pm.ProcFeeExp + pm.ArrangementFee) As Total ,u.Fullname as Advisor 
FROM dbo.tbl_Profile AS p 
INNER JOIN dbo.tbl_Profile_Mortgage AS pm 
ON p.ID = pm.FK_ProfileID 
INNER JOIN dbo.tbl_AppStatus AS ap 
ON pm.MortgageStatus = ap.StatusID 
INNER JOIN dbo.tbl_CaseTypes AS ct 
ON p.CasetypeID = ct.CaseTypeID 
LEFT JOIN dbo.tbl_User AS u 
ON p.Advisor = u.UserID 
WHERE pm.MortgageStatus = 7 
AND ct.CaseTypeDesc = 'Project Finance' 
AND p.Advisor IN (266,104,172,145,177,253,286,261,289,138) 
AND (
      pm.DatePassed  BETWEEN @Start AND @End 
     OR pm.DateCompleted  BETWEEN @Start AND @End 
     OR pm.DateOffered  BETWEEN @Start AND @End 
     ) 
UNION ALL 
SELECT Count(ct.CaseTypeDesc)AS Done, 'Whole of Market' as CaseTypeDesc,ap.StatusDesc As [Mortgage Status], 
SUM(pm.ProcFeeExp + pm.ArrangementFee) As Total ,u.Fullname as Advisor 
FROM dbo.tbl_Profile AS p 
INNER JOIN dbo.tbl_Profile_Mortgage AS pm 
ON p.ID = pm.FK_ProfileID 
INNER JOIN dbo.tbl_AppStatus AS ap 
ON pm.MortgageStatus = ap.StatusID 
INNER JOIN dbo.tbl_CaseTypes AS ct 
ON p.CasetypeID = ct.CaseTypeID 
LEFT JOIN dbo.tbl_User AS u 
ON p.Advisor = u.UserID 
WHERE pm.MortgageStatus = 7 
AND ct.CaseTypeDesc = 'Whole of Market' 
AND p.Advisor IN (266,104,172,145,177,253,286,261,289,138) 
AND (
      pm.DatePassed  BETWEEN @Start AND @End 
     OR pm.DateCompleted  BETWEEN @Start AND @End 
     OR pm.DateOffered  BETWEEN @Start AND @End 
     ) 
UNION ALL 
SELECT Count(ct.CaseTypeDesc)AS Done, 'CustomBuild' as CaseTypeDesc,ap.StatusDesc As [Mortgage Status], 
SUM(pm.ProcFeeExp + pm.ArrangementFee) As Total ,u.Fullname as Advisor 
FROM dbo.tbl_Profile AS p 
INNER JOIN dbo.tbl_Profile_Mortgage AS pm 
ON p.ID = pm.FK_ProfileID 
INNER JOIN dbo.tbl_AppStatus AS ap 
ON pm.MortgageStatus = ap.StatusID 
INNER JOIN dbo.tbl_CaseTypes AS ct 
ON p.CasetypeID = ct.CaseTypeID 
LEFT JOIN dbo.tbl_User AS u 
ON p.Advisor = u.UserID 
WHERE pm.MortgageStatus = 7 
AND ct.CaseTypeDesc = 'CustomBuild' 
AND p.Advisor IN (266,104,172,145,177,253,286,261,289,138) 
AND (
      pm.DatePassed  BETWEEN @Start AND @End 
     OR pm.DateCompleted  BETWEEN @Start AND @End 
     OR pm.DateOffered  BETWEEN @Start AND @End 
     ) 

让我知道这是否对您有帮助。

+0

嗨alejandro它仍然错过了casetypes没有一个计数在上面。 – RustyHamster

+0

运行查询时你会得到什么? –

+0

完全相同,当我与工会所有的casetypes运行它。它带回了项目融资和整个市场,但没有为CustomBuild。希望它会显示CustomBuild为0,但什么都不显示 – RustyHamster