查找最近一天的所有记录(行)

时间:2017-06-24 00:45:02

标签: sql-server date

我正在尝试编写一个计划自动运行的T-SQL脚本。它应该返回与最近一整天的业务有关的记录,即昨天或上周五的星期一。

我被要求在最近一整天的营业开始时(即昨天或上周五)提供所有未决案件数量的报告,以下代码是我对此的第一次尝试,但它在星期一运行时不起作用,以及所有打开的案例,所有案件都关闭,以及当天结束时所有未决案件。这是我到目前为止,它提供了期初余额(但它只适用于周二到周五......而不是周一):

DECLARE @Start DATE = (getdate()-1), @end DATE = getdate()

SELECT
      tc_sk -- the ID
      ,[tc_open_date]
      ,[tc_closed_date]
  FROM tbl_cases
  WHERE tc_open_date<@start
  AND
  tc_closed_date>=@start
  OR
  tc_open_date<@start
  AND
  tc_closed_date is null

同样,我试图解决的问题是获取在业务最后一天打开的所有记录的列表。如果脚本在星期一运行,它应该检索上周五输入的记录。如果脚本在星期二到星期五运行,它应该检索输入的记录&#34;昨天&#34;。

我非常擅长编写脚本并且自学成才。非常感谢您给予我的任何帮助!

2 个答案:

答案 0 :(得分:1)

试试这个:

else if

答案 1 :(得分:0)

你可以使用它。

DECLARE @Start DATE = (getdate()-1), @end DATE = getdate()-1


SELECT
      tc_sk -- the ID
      ,MAX([tc_open_date]) AS tc_open_date
      ,MAX([tc_closed_date]) AS tc_closed_date
  FROM tbl_cases
  WHERE tc_open_date<@start
  AND  (tc_closed_date>=@start  OR  tc_closed_date is null)
  GROUP BY tc_sk
  HAVING MAX([tc_open_date])