我有一个TSQL查询,该查询在通过SSMS执行时有效,但是在SSRS数据集中使用相同的查询时,不会产生任何结果。
我删除了TSQL语句中的where子句,然后在ssrs报告中显示了结果,但是我需要TSQL语句中的where线索来产生输出。
我已使用cast / convert / int / varchar / date更改了where子句数据类型,但没有成功。
有人有解决方案吗?
尽管我尝试在SSRS报告本身中进行过滤,但该过滤方法也无法正常工作,但我不想使用此技术,结果将输出到csv中。
感谢任何想法,想法和解决方案-预先感谢。
更新:该报告没有任何参数,并且设计为在订阅运行时根据以下sql的内容删除一个csv;
select TenancyRef, FullName, Telephone1, Telephone2,convert(varchar (2),weekucpayday) wkpayday, substring(convert(varchar,getdate(),103),1,2) daypayday --,Currentdate, paydate,
from (
SELECT CAST(RTRIM(ZZ.propref) AS nvarchar) + CAST(RTRIM(ZZ.tensuffix) AS nvarchar) + CAST(RTRIM(ZZ.checkdigit) AS nvarchar) AS TenancyRef, RTRIM(ZZ.perstitle) + ' ' + RTRIM(ZZ.perfnames)
+ ' ' + RTRIM(ZZ.persname) AS FullName,
ZZ.Mobile_Number AS Telephone1,
ZZ.Home_Number AS Telephone2,
ZZ.tenind AS Status,
ZZ.ArrearsBalance,
a.ucdaycode,
ZZ.tenaltkey,
cast(cast(a.ucdaycode as varchar) +'/' + cast(month(GETDATE()) as varchar) +'/' + cast(YEAR(GETDATE()) as varchar ) as date) as paydate,
datename(dw,convert(date,(cast(a.ucdaycode as varchar) +'/' + cast(month(GETDATE()) as varchar) +'/' + cast(YEAR(GETDATE()) as varchar )),103)) payday,
datepart(dd,(case when datepart(dw,cast(DATEADD(dd, a.ucdaycode, DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1)) as date)) = 6 then
cast(DATEADD(dd, a.ucdaycode, DATEADD(month, DATEDIFF(month, 0, GETDATE()), -2)) as date)
when datepart(dw,cast(DATEADD(dd, a.ucdaycode, DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1)) as date)) = 7 then
cast(DATEADD(dd, a.ucdaycode, DATEADD(month, DATEDIFF(month, 0, GETDATE()), -3)) as date)
else cast(DATEADD(dd, a.ucdaycode, DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1)) as date)
end)) as weekucpayday,
cast(DATEADD(dd, a.ucdaycode, DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1)) as date) AS ucpayday
, convert(nvarchar,GETDATE(),1) Currentdate
FROM [ucdetail ] AS a INNER JOIN
(SELECT Z.propref, Z.tensuffix, Z.checkdigit, Z.tenind, Z.tenaltkey, Z.ArrearsBalance, Z.paymthdcode, T3.perstitle, T3.perfnames, T3.persname, T1.contdetails AS Mobile_Number,
T2.contdetails AS Home_Number
FROM (SELECT T.propref, T.tensuffix, T.tenaltkey, T.tenind, T.checkdigit, occupancy.relncode, occupancy.occend, occupancy.perref AS OccPerref, T.tenarrsbal AS ArrearsBalance, T.paymthdcode
FROM tenancy AS T LEFT OUTER JOIN
occupancy ON T.tenaltkey = occupancy.tenaltkey
WHERE (occupancy.relncode = 'T1') AND (GETDATE() < occupancy.occend) OR
(occupancy.relncode = 'T1') AND (occupancy.occend IS NULL)) AS Z LEFT OUTER JOIN
(SELECT perref, contdetails
FROM [contdetails ] AS C1
WHERE (UPPER(commtype) = 'T') AND (UPPER(commdesccode) = 'MOB') AND (UPPER(activeind) = 'Y') AND (UPPER(preferred) = 'Y')) AS T1 ON Z.OccPerref = T1.perref LEFT OUTER JOIN
(SELECT perref, contdetails
FROM [contdetails ] AS C2
WHERE (UPPER(commtype) = 'T') AND (UPPER(commdesccode) = 'HOME') AND (UPPER(activeind) = 'Y') AND (UPPER(preferred) = 'Y')) AS T2 ON Z.OccPerref = T2.perref LEFT OUTER JOIN
(SELECT perstitle, perfnames, persname, perref
FROM person) AS T3 ON Z.OccPerref = T3.perref) AS ZZ ON a.tenaltkey = ZZ.tenaltkey
WHERE ZZ.tenaltkey not in (select postref from tranmisc where tranmisc.acctcode = 'ATBEN') and ZZ.paymthdcode != 'DD' and (ZZ.Mobile_Number IS NOT NULL OR
ZZ.Home_Number IS NOT NULL) AND (a.status = 'Active') AND (ZZ.tenind = 'C') AND (a.ucdaycode <> 0) --AND (a.ucdaycode = DATEPART(dd, GETDATE()))
) AS UC where convert(int,UC.weekucpayday) = convert(int,(DATEPART(dd,getdate())))