Access 查询的 SSRS 转换

SSRS Conversion from Access Query

我们目前有 运行 来自 Access 数据库宏内部的报告,我们希望将其转换为 SSRS 报告。

我想将 Access 查询转换为这些报告可以共享的共享数据集,因为我想将两个参数传递给此共享数据集,但我在使其工作时遇到了问题。

SELECT * FROM FROM ReportLog WHERE ClientName = [ClientNameParameter] AND 
DateEntered BETWEEN getstartdatedaily() AND DATE() - 1
ORDER BY DateEntered;

上面的查询是我想放入共享日期集中的内容,但是对于每个报告,我都会将客户端名称传递到查询中(我不希望报告提示用户这样做)并且 getStartDateDaily 是Access 中的一个函数,我不确定如何将其转换为 SSRS 可以使用的东西。下面是运行该函数的代码,因为我不确定如何将其转换为 SSRS 报告可以使用的参数/函数。

Public Function getStartDateDaily() As Date
    Dim startDate As Date
    Dim endDate As Date
    If Weekday(Date) = 2 Then
        startDate = Date - 3
    Else
        startDate = Date - 1
    End If
    getStartDateDaily = startDate
End Function

非常感谢任何帮助。

Northwind 隐喻示例

Use Northwind
Go

Select * from
(

SELECT [OrderID]
      ,[CustomerID]
      ,[EmployeeID]
      ,[OrderDate]
      ,[RequiredDate]
      ,[ShippedDate]
      ,[ShipVia]
      ,[Freight]
      ,[ShipName]
      ,[ShipAddress]
      ,[ShipCity]
      ,[ShipRegion]
      ,[ShipPostalCode]
      ,[ShipCountry]
      ,DATEPART(dw,[OrderDate]) as MyDATEPART
      , StartDateDaily =
      CASE
      WHEN DATEPART(dw,[OrderDate]) = 2 THEN DATEADD(d, -3, CURRENT_TIMESTAMP)--Date - 3
        ELSE DATEADD(d, -1, CURRENT_TIMESTAMP)  -- Date - 1
      END
  FROM [Northwind].[dbo].[Orders]
) as derived1

Where OrderDate between StartDateDaily and  DATEADD(d, - 1, CURRENT_TIMESTAMP)

以上作品。

我对你的猜测:(提示,暂时注释掉下面的 where 子句以查看方程的计算值(MyDATEPART 和 StartDateDaily )并在必要时调整它们)

Select * from
(

SELECT *
      ,DATEPART(dw,DateEntered) as MyDATEPART
      , StartDateDaily =
      CASE
      WHEN DATEPART(dw,DateEntered) = 2 THEN DATEADD(d, -3, CURRENT_TIMESTAMP) 
        ELSE DATEADD(d, -1, CURRENT_TIMESTAMP)
      END
  FROM ReportLog
) as derived1

Where DateEntered between StartDateDaily and  DATEADD(d, - 1, CURRENT_TIMESTAMP)