【问题标题】:Get multiple rows from single row based on from and to date根据从和到日期从单行获取多行
【发布时间】:2016-05-17 13:48:50
【问题描述】:

我有 3 列 ID ,从日期和到日期。我需要检查从和到之间的日期差异并根据差异添加新行。下面的示例。如何在 sql server 中完成此操作

+-----+------------+------------+
| ID  |    From    |     To     |
+-----+------------+------------+
| 100 | 15/05/2016 | 17/05/2016 |
+-----+------------+------------+

我需要的输出

+-----+------------+
| ID  |    Date    |
+-----+------------+
| 100 | 15/05/2016 |
| 100 | 16/05/2016 |
| 100 | 17/05/2016 |
+-----+------------+

【问题讨论】:

  • 所以你想要他们之间的平均日期?你的意思是你想标准化你的数据?
  • 讨论了 100 次。您应该有一个日历表,然后是一个连接,在连接子句中进行比较。
  • 工作日还是日历?
  • @GiorgiNakeuri 我认为他在这里不需要日历表

标签: sql-server


【解决方案1】:

这里有一个function

dbo.ExplodeDates(@startdate datetime, @enddate datetime) 

只需更新它以包含您的ID

dbo.ExplodeDates(@ID id, @startdate datetime, @enddate datetime) 

并像使用它

SELECT *
FROM dbo.ExplodeDates(@ID id, @startdate datetime, @enddate datetime) 

【讨论】:

    猜你喜欢
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多