SQL Server-选择每个月的每日值

时间:2019-01-11 13:22:33

标签: sql sql-server sql-server-2012

我在SQL Server中有一个像这样的表:

Machine        Time                  Parts

  A            2018-12-11 00:00      12
  A            2018-12-11 01:00      38
  A            2018-12-11 02:00      52
                    .....
  A            2018-12-11 23:00      13
  A            2018-12-12 00:00      45
  A            2018-12-12 01:00      35
                    .....
  A            2019-01-10 22:00      25
  A            2019-01-10 23:00      68
  A            2019-01-11 00:00      29
  A            2019-01-11 01:00      36
  A            2019-01-11 02:00      19
  A            2019-01-11 03:00      52
                    .....

机器每小时生产的零件数量存储在表格中。 我需要的是一个查询,它获取2018年12月11日00:00到2019年1月11日00:00之间的所有数据,计算每天的部分总和并返回所有31个总和值。

我已经尝试解决了几天,但由于我的SQL技能仍然很弱,因此无法解决。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:5)

您只是想从time获取日期吗?

select cast(time as date) as dte, sum(parts)
from t
where time >= '2018-12-11' and time < '2019-01-11'
group by cast(time as date)
order by cast(time as date);