给(对我们来说)每天约2GB的大数据流。此数据必须合并/结构化/清除到目标数据库中(此部分已解决)。
直到现在,我们每天都要为当月的整个数据集删除并创建一个新的数据表,然后将其合并为前几个月的数据集的物化表。
此外,这是一种非常不雅观的方式,不幸的是,到本月底,此查询变得非常庞大,每天消耗服务器长达1.5小时。
我认为我可以通过获取DateMax的所有数据来对日期进行参数化查询 (
declare @ReportDateMax datetime
set @ReportDateMax = dateadd(dd,-1, cast(getdate() as date)
)
但是还不够好-
问题如下:
1.周一我们需要下载周五的数据
2.星期一星期二
3.周三星期二
4.周四星期三
5.周四星期五
这意味着我不能只下载昨天的信息,因为星期一无法获得任何信息。 同样理想的是,如果我们只是每日数据,那么我希望每天运行两次,以选择上一个报告日的查询。
所需的解决方案:
设计一个查询,以选择上一个工作日(公共假期与该主题无关)。
答案 0 :(得分:0)
我终于在另一篇文章中找到了解决方案。 如果其他人有兴趣:
SELECT DATEADD(DAY, CASE DATENAME(WEEKDAY, GETDATE())
WHEN 'Sunday' THEN -2
WHEN 'Monday' THEN -3
ELSE -1 END, DATEDIFF(DAY, 0, GETDATE()))