0

我有一个如下所示的 SQL 查询:-

select *
from dbo.NGPTimesheetsPosition
where ProjectNO = '12169-01-c' AND CreditorEmployeeID <> 'E0000' AND DocType = 'Time Sheet' 

这将返回以下数据:

SSMS 输出示例

我想要做的是能够只显示直到并包括用户定义的日期的数据,例如 01/02/2013。

用户定义的日期可以是当前月份之前的任何日期。

非常感谢所有帮助或建议。

4

3 回答 3

1

您需要向您的报告添加一个参数,并在您的数据集查询中使用此参数:

SELECT *
FROM dbo.NGPTimesheetsPosition
WHERE ProjectNO = '12169-01-c' 
      AND CreditorEmployeeID <> 'E0000' 
      AND DocType = 'Time Sheet'
      AND TransactionDate <= @MyDateParameter -- ADDED!

当您声明时,您对参数的可能值的问题并不完全清楚:

用户定义的日期可以是当前月份之前的任何日期。

我认为SqlServerCentral 的这些人是对的:您不能为数据参数设置限制。这为您提供了两个基本选择:

  • 随它去。如果需要,您可以AND @MyDateParameter <= CURRENT_TIMESTAMP在查询中添加子句。
  • 使用可用日期填充数据集,并将其用作参数的可用值
于 2013-04-26T12:29:31.757 回答
0
select *
from dbo.NGPTimesheetsPosition
where ProjectNO = '12169-01-c' AND CreditorEmployeeID <> 'E0000' AND DocType = 'Time Sheet'
    and TransactionDate <= '2013-02-01' 

?

于 2013-04-26T11:04:26.087 回答
0

在您的 where 子句中进行日期比较,如下所示

Convert( varchar (11) , transactiondate , 101 ) <= '01/02/2013'

于 2013-04-26T11:10:51.387 回答