【问题标题】:SQL sum amount that lies between two dates位于两个日期之间的 SQL 总和
【发布时间】: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”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tagWhy should I tag my DBMS
  • 大家好。谢谢回复。我更新了描述。很抱歉失败了。
  • @Arvo:我已经被“逻辑”困扰着如何计算出多少天,例如从 08.07.2020 - 15.07.2020 与 cw28 相交(06.07.-1​​2.07。)我的想法是:如果我知道与 cw28-“intervall”相交的天数,我可以将其与“数量每天”
  • 嗯 :) 通常你需要日历表 - 一些包含所有日期的对象 - 你可以轻松地将你的表加入日历(yourtable.start 和 yourtable.end 之间的calendar.day)并检查周数日历表。您的具体问题也可以通过递归 CTE 来解决,但通常日历表是更灵活和通用的方法。这里有很多例子,甚至可以即时构建日历表。

标签: sql date sum between


【解决方案1】:

不确定您的确切要求。但下面是获取两个日期之间值总和的查询。

select sum(amount_of_days) from table where date_column between '06-JUL-2020' and '07-JUL-2010';

根据您的要求更改列名和表名

【讨论】:

  • 您好,谢谢您的回答。不完全是我需要的。我在描述中添加了一张图片以使其更清楚。不过还是谢谢你:)
猜你喜欢
  • 2018-12-07
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 2020-10-11
  • 1970-01-01
相关资源
最近更新 更多