首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL -支付期的日期范围

SQL -支付期的日期范围
EN

Stack Overflow用户
提问于 2014-09-19 02:18:31
回答 2查看 68关注 0票数 0

好吧,所有的SQL大师和绝地,这里是我的问题,并要求在SQL SSMS中的案例陈述。

我有一年的日期。

因此,每一行的日期从2013年3月24日开始,一直持续到今天。

我希望每14天被打电话给04/12/2013。

代码语言:javascript
复制
So from 03/24/2013 thru 04/06/2013 would be all 04/12/2013 and
from 04/07/2013 thru 04/20/2013 would be 04/26/2013 and
from 04/21/2013 thru 05/04/2013 would be 05/10/2013 and so on.

下面是给你一个想法的集合:

  • 日期- PayDate
  • 3/24/2013 - 4/12/2013
  • 2013年25/3- 4/12/2013
  • 2013年6月3日-2013年12月4日
  • 2013年3月27日-2013年12月4日
  • 2013年3月28日-2013年12月4日
  • 2013年9月3日-2013年12月4日
  • 2013年3月30日-2013年12月4日
  • 2013年3月31日-2013年12月4日
  • 2013年1月4日-2013年12月4日
  • 2013年2月4日-2013年12月4日
  • 2013年3月4日-2013年12月4日
  • 4/4/2013 -4/12/2013
  • 2013年5月4日-2013年12月4日
  • 2013年6月4日-2013年12月4日
  • 2013年7月4日-2013年4月26日
  • 2013年8月4日-2013年4月26日
  • 2013年9月4日-2013年4月26日
  • 2013年10月4日-2013年4月26日
  • 2013年11月4日-2013年4月26日
  • 2013年12月4日-2013年4月26日
  • 2013年3月4日-2013年4月26日
  • 2013/14/4-4/26/2013
  • 2013年4月15日-2013年4月26日
  • 2013年16/4-4/26/2013
  • 2013年4月17日-2013年4月26日
  • 2013年4月18日-2013年4月26日
  • 2013年9月4日-2013年4月26日
  • 2013年4月20日-2013年4月26日
  • 2013年11月4日-2013年10月5日

希望这是有意义的。

EN

回答 2

Stack Overflow用户

发布于 2014-09-19 02:26:07

有几种方法可以做到这一点-我可能想要创建一个表与所有适当的支付日期,然后加入使用逻辑,这是相对简单的。

类似于:

代码语言:javascript
复制
select PayDate.date
from date
inner join PayDate on datediff(day, date.date, PayDate.date) > 18 AND datediff(day, date.date, PayDate.date) < 4

或者别的什么。我还没有计算出确切的datediff,因为我正在做一些事情,但这应该已经足够开始了。

票数 0
EN

Stack Overflow用户

发布于 2014-10-06 15:39:36

因此,从可怕的StackOverflow中获得提示,并听取Jeff的建议,我继续创建了一个临时表,并使查询开始工作。现在,我使用以下临时表代码获得所需的信息,并在日期上执行内部连接,并在Select语句中包括PP日期。

希望这能帮助其他拥有数据库只读特权的人。

代码语言:javascript
复制
   declare @temp  table
   (
   Date datetime,
   PPDate datetime
   )

   INSERT INTO @temp (Date, PPDate)
   SELECT '2013-2-10', '2013-3-1'
   UNION ALL SELECT '2013-2-11', '2013-3-1'
   UNION ALL SELECT '2013-2-12', '2013-3-1'
   ....
   ....
   UNION ALL SELECT '2013-2-23', '2013-3-1'
   UNION ALL SELECT '2013-2-24', '2013-3-15'
   ....
   ....
   UNION ALL SELECT '2013-3-8', '2013-3-15'
   UNION ALL SELECT '2013-3-9', '2013-3-15'
   UNION ALL SELECT '2013-3-10', '2013-3-29'
   UNION ALL SELECT '2013-3-11', '2013-3-29'
   ....
   ....
   UNION ALL SELECT '2013-3-22', '2013-3-29'
   UNION ALL SELECT '2013-3-23', '2013-3-29'
   UNION ALL SELECT '2013-3-24', '2013-4-12'

   select a.StrDate, t.PPDate, sum(Qty) Qty from tbl1 a
   Inner Join @temp t on t.date = a.StrDate
   group by a.StrDate, t.PPDate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25925372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档