【问题标题】:intervals of dates - summing日期间隔 - 求和
【发布时间】:2023-03-29 14:26:01
【问题描述】:

我有一张带日期的表:

Table1
Date_start  Date_end
01JUL1997   01JUL1998
01JUL1998   01APR1999
01APR1999   01OCT2000
01OCT2000   01JUL2001

第二个表,其中有日期和数字:

Table2
Date_of_pay           Cash 
01DEC1999:00:00:00  $377.00
01DEC1999:00:00:00  $377.00
01JAN2000:00:00:00  $377.00
01JAN2000:00:00:00  $377.00
01JAN2000:00:00:00  $377.00
01JAN2000:00:00:00  $377.00

我想为 Table1 中的每个间隔在 Table2 中赚取现金总和。 我不知道如何在数据步骤中使用 proc sql。

感谢您的帮助。

【问题讨论】:

  • 请发布您期望的结果,到目前为止您尝试过的内容,理想情况下将您的数据作为数据步骤发布,但前两个更为重要。正如发布的那样,这不是一个有效的 SO 问题。
  • 好的,对不起,下次我会添加我的尝试。
  • Date_startDate_end 如果您使用 >=<= 就像在耶稣洛佩兹的回答中一样。

标签: sql sas datastep


【解决方案1】:

请尝试以下查询:

SELECT
    table1.date_start, table1.date_end,
    SUM(table2.cash) as cash
FROM 
    table1 INNER JOIN table2
    ON  table2.date_of_pay >= table1.date_start
    AND table2.date_of_pay <= table1.date_end
GROUP BY
    table1.date_start, table1.date_end

【讨论】:

  • 您不会对 table1 似乎存储日期而 table2 似乎存储日期时间的可能性发表任何评论。如果是这种情况,那么您的答案将不起作用
  • 谢谢,它有效! (如 Longfish 所述,我添加了日期时间到日期的转换)
  • @Longfish。是的,你是对的,我认为日期是相同的类型。
猜你喜欢
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
  • 2020-05-30
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2021-04-04
  • 2012-04-25
相关资源
最近更新 更多