我正在尝试编写一个计划自动运行的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;。
我非常擅长编写脚本并且自学成才。非常感谢您给予我的任何帮助!
答案 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])