SQL将每小时数据分成半小时

时间:2019-03-07 21:39:39

标签: sql sql-server sql-server-2016 hour

我有一列,其中包含来自两个不同来源的数据-一组按小时粒度输入,另一组按半小时输入。

Datetime           Source    Value  
01/01/2018 14:00   A          20
01/01/2018 14:00   B          15
01/01/2018 14:30   B          11

我想每隔半小时用这些网创建一个新列。

Datetime           Net Value
01/01/2018 14:00   35              --20+15
01/01/2018 14:30   31              --20+11   

感谢您的帮助,

谢谢

1 个答案:

答案 0 :(得分:1)

您是否尝试过像这样在日期和时间加入会议?

SELECT b.Datetime
    , ISNULL(a.val, 0) + ISNULL(b.val, 0)
FROM myTable b
JOIN myTable a
ON CAST(b.Datetime AS DATE) = CAST(a.Datetime AS DATE)
AND DATEPART(HOUR, b.Datetime) = DATEPART(HOUR, a.Datetime)
AND b.source = 'B' 
AND a.source = 'A'

来自评论(谢谢!):try it in this DB Fiddle.