【问题标题】:Using the dates in ranges to join and display all dates?使用范围内的日期来连接和显示所有日期?
【发布时间】:2020-12-23 17:59:41
【问题描述】:

我有两张桌子,桌子 A 和桌子 B。

表 A 包括人们的发薪时间和日历日期。表 B 包含开始日期、结束日期和支付周期信息。

表 A 中的样本数据:

Calendar_Date   PayHours   Name
11/23/2020      10.0       Scott, Michael
12/02/2020      12.0       Harper, Jim
12/03/2020      12.0       Kim, Maggie
12/10/2020      24.0       Rogers, Steve

表 B 中的示例数据:

Start_date  End_Date    PayPeriod
2020-11-22  2020-12-05  2020-12-wk1
2020-12-06  2020-12-19  2020-12-wk3

我需要加入这些表,这样我才能得到这样的结果。

Calendar_Date   PayHours   Name             PayPeriod
11/23/2020      10.0       Scott, Michael   2020-12-wk1
12/02/2020      12.0       Harper, Jim      2020-12-wk1
12/03/2020      12.0       Kim, Maggie      2020-12-wk1
12/10/2020      24.0       Rogers, Steve    2020-12-wk3

显然加入 A.Calendar_date = B.Start_date(或 B.end_date)不会给我所需的结果。但是有没有办法将这两个表与日期连接起来?

【问题讨论】:

    标签: sql sql-server datetime inner-join


    【解决方案1】:

    您可以加入属于支付周期范围的日历日期,如下所示:

    select a.*, b.payperiod
    from tablea a
    inner join tableb b 
        on  c.calendar_date >= b.start_date
        and c.calendar_date <= b.end_date
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      相关资源
      最近更新 更多