0

我有一个在 SSRS 中使用的查询,它从 SQL Server 2008 的视图中报告摘要和详细信息。我遇到的问题是我无法正确计算日期范围。这是查询:

declare @FromDate as Date

SELECT
    [ABS] =
    case when left(filename,2)='BA' then 'BAGS'
     when left(filename,2)='SX' then 'SOCKS'
     else 'APPAREL' end,
LEFT(filename,(charindex( '_', filename, charindex( '_', filename)+1)-1)) as [MATERIAL],
filename, 
CONVERT(varchar(50),delvd_dt,1) as DD,
fulfillment_type
FROM vw_Delivery_Log
WHERE(charindex( '_', filename, charindex( '_', filename)+1)-1)>0
AND delivered_to_ftp <> 6
AND fulfillment_type <> 'REDROP'
AND (convert(varchar(50),delvd_dt,1) > @FromDate );

我将@FromDate 变量作为日期时间作为SSRS 中的变量。当我在选择语句“set @FromDate = '4/1/2013'”之前添加一行时,查询会产生预期的结果,但是没有它,查询不会产生任何结果。

我还尝试使用转换命令将@FromDate 变量转换为日期,以及只为变量输入文本,而不是从日历中选择日期。

由于数据集的大小,我需要能够查看报告的较小部分。一个月的条目将是 250 页数据。

任何帮助将不胜感激。

4

1 回答 1

0

如果您没有设置 @FromDate 它是 NULL 并且 WHERE 子句中的条件失败。如果你想能够使用 NULL @FromDate 你需要这样的东西:

AND (@FromDate IS NULL OR delvd_dt > @FromDate)
于 2013-05-02T15:22:06.567 回答