【发布时间】:2020-10-19 07:48:33
【问题描述】:
我在 SQL 中有下表:
Start - End - Amount **per day**
06.07.2020 10.07.2020 10
08.07.2020 08.07.2020 5
08.07.2020 15.07.2020 20
02.07.2020 06.07.2020 3
现在我想按日历周过滤此表。假设“[日历周] = cw28”。 cw28 是从 7 月 6 日到 7 月 12 日。
我想知道这两个日期之间的天数总和。一个号码。
我正在使用 MS SQL Server (SQL Express)。 我不知道如何区分(和分解)一天是否介于两个日期值之间。如果是的话,我需要总结多少。
我试图在 excel 中制作一张图片以从中创建逻辑: "Logic" in Excel
谁能帮我解决这个问题? :)
谢谢,最好的!, 最大
【问题讨论】:
-
到目前为止您尝试过什么? SO 不是代码编写服务。
-
您使用的是哪种 DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag。 Why should I tag my DBMS
-
大家好。谢谢回复。我更新了描述。很抱歉失败了。
-
@Arvo:我已经被“逻辑”困扰着如何计算出多少天,例如从 08.07.2020 - 15.07.2020 与 cw28 相交(06.07.-12.07。)我的想法是:如果我知道与 cw28-“intervall”相交的天数,我可以将其与“数量每天”
-
嗯 :) 通常你需要日历表 - 一些包含所有日期的对象 - 你可以轻松地将你的表加入日历(yourtable.start 和 yourtable.end 之间的calendar.day)并检查周数日历表。您的具体问题也可以通过递归 CTE 来解决,但通常日历表是更灵活和通用的方法。这里有很多例子,甚至可以即时构建日历表。